2012-11-15 136 views
0

如果我已經創建並啓動了System.Threading.Timer如何停止運行Timer?

Dim tcb As TimerCallback = New TimerCallback(AddressOf timerRoutine) 
Dim t As Timer = New Timer(tcb, Nothing, DueTime, Period) 

如何停止呢?

使用System.Timers.Timer並致電Timer.Stop()會更容易嗎?

+0

我要求谷歌爲您提供:http://msdn.microsoft.com/ en-us/magazine/cc164015.aspx – Jan

+0

各種定時器是不同的:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx什麼是「更好」(或更容易)取決於你需要什麼。 –

回答

0

一種選擇是t.Dispose(),這將處置Timer,因此停止。

如果Dispose被稱爲如下它應該等待10秒對所有排隊的計時器回調前的物體的配置來完成:

Dim waitHnd As WaitHandle = New AutoResetEvent(False) 
t.Dispose(waitHnd) 
waitHnd.WaitOne(10000)