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