2011-04-11 114 views
1

我想有一个定时器来更新像每一个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秒后没有发生。我想知道是否有可能这样做?

在此先感谢。

+0

你确定它没有运行,你只是没有看到在网页上的结果?尝试写入数据库表或文本文件... – noonand 2011-04-11 15:56:20

回答

3

使用System.Timers.Timer,而不是System.Windows.Forms.Timer

前者采用Elasped作为事件处理程序,并会发挥作用。后者是为winforms量身定做的,应该在Form1_Load()上使用,而不是在应用程序启动时使用。

1

我猜Timer对象在Application_Start void关闭后被销毁。因此,尝试将其分配给应用程序变量。在应用中几乎任何地方预计

1

ASP.NET请求和事件的设计时间不长。你应该考虑编写一个Windows服务,具体取决于你想要达到的目标(你想达到什么目标?)。