【发布时间】:2012-07-06 11:25:59
【问题描述】:
每隔 x 分钟执行 Global.asax 文件中的方法的最有效方法是什么?有没有办法让 ASP.NET 服务器运行一个后台线程,该线程在一段时间后触发一个滴答事件?
【问题讨论】:
标签: c# asp.net multithreading timer webserver
每隔 x 分钟执行 Global.asax 文件中的方法的最有效方法是什么?有没有办法让 ASP.NET 服务器运行一个后台线程,该线程在一段时间后触发一个滴答事件?
【问题讨论】:
标签: c# asp.net multithreading timer webserver
您可以在 Global.asax 的 Application_Start 中有一个计时器,但这不是很灵活,因为您需要向应用程序发出请求以启动计时器。但是,按照 Haacked 的详细说明,这样做是有危险的:
一个更好的方法是让一个 Web 服务充当 ASP.NET 应用程序的接口,并让一个 Windows 服务在预定的时间间隔调用你的 Web 服务:
更多细节在这里:
【讨论】:
您可以结合使用 HTTPModule 和 ASP.NET TIMER 来执行此操作
(或)
你可以使用 AJAX Timer 控件。
http://technico.qnownow.com/2012/06/12/refresh-gridview-intervals-using-ajax-timer/
【讨论】:
将System.Timers.Timer 对象放入Application_Start () 中Global.asax。
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
【讨论】: