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

本文介绍了一种在ASP.NET应用中利用线程进行定时日志记录的方法。通过在Global.asax文件中启动一个后台线程,可以实现每分钟将线程名称及当前时间写入到指定的日志文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Global.asax

C# code


ContractedBlock.gifExpandedBlockStart.gifCode
 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()
 8ExpandedBlockStart.gifContractedBlock.gif    {
 9        while (true)
10ExpandedSubBlockStart.gifContractedSubBlock.gif        {
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)
18ExpandedBlockStart.gifContractedBlock.gif    {
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)
27ExpandedBlockStart.gifContractedBlock.gif    {
28        //在应用程序关闭时运行的代码
29
30    }

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

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

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

52      
53</script>

转载于:https://www.cnblogs.com/homezzm/archive/2009/11/26/1610989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值