我開始使用C#System.Threading.Timer
類。當定時器已經啓動,並且正在執行我指定的TimerCallback時,當我停止使用myTimer.Change(Timeout.Infinite, 0)
的定時器時會發生什麼。停止C#定時器並執行回調
我的回調完成執行或立即中止?
如果沒有中止,有一種方法可以執行類似於Thread.Abort
的操作來立即殺死要執行的代碼?
我開始使用C#System.Threading.Timer
類。當定時器已經啓動,並且正在執行我指定的TimerCallback時,當我停止使用myTimer.Change(Timeout.Infinite, 0)
的定時器時會發生什麼。停止C#定時器並執行回調
我的回調完成執行或立即中止?
如果沒有中止,有一種方法可以執行類似於Thread.Abort
的操作來立即殺死要執行的代碼?
您的回調不會中止,它會結束執行。 如果要停止執行,只需從return
開始執行。
我建議使用System.Timers.Timer
,並且您將必須檢查回調函數中定時器的Enabled屬性以停止執行。
例子:
using System.Timers;
創建一個新的Timer對象:
Timer timerObject = new Timer();
timerObject.Interval = 1000;
timerObject.Start();
timerObject.Elapsed += new ElapsedEventHandler(timerObject_Elapsed);
而且在事件handlign功能檢查啓用後:
void timerObject_Elapsed(object sender, ElapsedEventArgs e)
{
Timer timerObject = (Timer)sender;
if (!timerObject.Enabled) return;
while(true)
{
DoSomething.....
if (!timerObject.Enabled) return;
}
}
非常感謝!它幫助! – 2010-02-26 12:39:56
非常感謝您的幫助! – 2010-02-26 12:39:40