2009-12-15 76 views
3

我有一個像下面如何在單獨的線程中運行計時器?

for(int i = 0; i < 10; i++) 
{ 
    // some long time processing 
} 

我想創建一個計時器,它會檢查,如果一個處理運行超過5分鐘一個循環。如果一次處理運行超過5分鐘,則會停止當前處理,然後開始另一次處理。

是否有可能使另一個線程來監視主循環?

我的程序是一個控制檯應用程序。

回答

1

你應該使用System.Timers.Timer

+0

其實這是'System.Timers.Timer' – 2009-12-15 13:03:13

+0

什麼是System.Timers.timer和System.Threading.Timer – 2009-12-15 13:03:40

+0

@Alex,固定(15chars) – Fredou 2009-12-15 13:04:19

0

但是,您仍然無法中止正在運行的代碼。 代碼iteself必須提供取消自己的能力,定時器可以在特定時間後調用它。

你可以使用一個布爾值「shouldCancel」,例如你在循環的每次迭代中(或者甚至多次)檢查。

「壞」的方式將使用Thread.Abort - 但是,這不是很好的風格。

相關問題