服务器端的定时器?

时间:2011-04-11 15:41:22

标签: c# .net asp.net timer

我希望有一个Timer来每10秒更新一次全局变量,所以我在我的Global.asax.cs中放了一个计时器:

void Application_Start(object sender, EventArgs e)
{
    Timer aTimer = new Timer();
    aTimer.Interval = 10*1000;
    aTimer.Tick += aTimer_Tick;            
    aTimer.Start();
}

void aTimer_Tick(object sender, EventArgs e)
{
    // Update Data
}

但奇怪的是,10秒后没有任何事情发生。我想知道是否有可能这样做?

提前致谢。

3 个答案:

答案 0 :(得分:3)

使用System.Timers.Timer代替System.Windows.Forms.Timer

前者使用Elasped作为事件处理程序,并且几乎可以在应用程序的任何位置按预期运行。后者是针对winforms定制的,应该在Form1_Load()上使用,而不是在应用程序启动时使用。

答案 1 :(得分:1)

我想在Timer void关闭后,Application_Start对象被销毁。因此,尝试将其分配给应用程序变量。

答案 2 :(得分:1)

ASP.NET请求和事件的设计时间不长。您应该考虑编写Windows服务,具体取决于您要实现的目标(您要实现的目标是什么?)。