ASP.NET(C#) 定时执行一段代码

在Global.asax启动一条线程就ok了,下面是启动线程定时写文件的例子

Global.asax

C# code


 1<%@ Application Language="C#" %>
 2<%@ Import Namespace="System.IO" %>
 3<%@ Import Namespace="System.Threading" %>
 4<script runat="server">
 5    string LogPath;
 6    Thread thread;
 7    void WriteLog()
 8    {
 9        while (true)
10        {
11            StreamWriter sw = new StreamWriter(LogPath, true, Encoding.UTF8);
12            sw.WriteLine(thread.Name + ":" + DateTime.Now.ToString());
13            sw.Close();
14            Thread.CurrentThread.Join(1000 * 60);//阻止1分钟
15        }

16    }

17    void Application_Start(object sender, EventArgs e)
18    {
19        LogPath = HttpContext.Current.Server.MapPath("log.txt");
20        //在应用程序启动时运行的代码
21         thread = new Thread(new ThreadStart(WriteLog));
22        thread.Name = "写登录日志线程";
23        thread.Start();
24    }

25   
26    void Application_End(object sender, EventArgs e)
27    {
28        //在应用程序关闭时运行的代码
29
30    }

31       
32    void Application_Error(object sender, EventArgs e)
33    {
34        //在出现未处理的错误时运行的代码
35
36    }

37
38    void Session_Start(object sender, EventArgs e)
39    {
40        //在新会话启动时运行的代码
41
42    }

43
44    void Session_End(object sender, EventArgs e)
45    {
46        //在会话结束时运行的代码。
47        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
48        // InProc 时,才会引发 Session_End 事件。如果会话模式
49        //设置为 StateServer 或 SQLServer,则不会引发该事件。
50
51    }

52      
53</script>
54
原文地址:https://www.cnblogs.com/skyshenwei/p/1651871.html