2011-04-11 208 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服務,具體取決於你想要達到的目標(你想達到什麼目標?)。