如果我已經創建並啓動了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()
會更容易嗎?
如果我已經創建並啓動了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()
會更容易嗎?
您可以通過調用您的計時器方法Change
與Timeout.Infinite停止: 見http://msdn.microsoft.com/en-us/library/yz1c7148(v=vs.80).aspx
t.Change(Timeout.Infinite, Timeout.Infinite)
你可以做到這一點改變方法。看看在備註:
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
一種選擇是t.Dispose()
,這將處置Timer
,因此停止。
如果Dispose
被稱爲如下它應該等待10秒對所有排隊的計時器回調前的物體的配置來完成:
Dim waitHnd As WaitHandle = New AutoResetEvent(False)
t.Dispose(waitHnd)
waitHnd.WaitOne(10000)
我要求谷歌爲您提供:http://msdn.microsoft.com/ en-us/magazine/cc164015.aspx – Jan
各種定時器是不同的:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx什麼是「更好」(或更容易)取決於你需要什麼。 –