を作成して開始した場合System.Threading.Timer
:
Dim tcb As TimerCallback = New TimerCallback(AddressOf timerRoutine)
Dim t As Timer = New Timer(tcb, Nothing, DueTime, Period)
どうすれば止められますか?
System.Timers.Timer
aと callを使用する方が簡単でしょうTimer.Stop()
か?
を作成して開始した場合System.Threading.Timer
:
Dim tcb As TimerCallback = New TimerCallback(AddressOf timerRoutine)
Dim t As Timer = New Timer(tcb, Nothing, DueTime, Period)
どうすれば止められますか?
System.Timers.Timer
aと callを使用する方が簡単でしょうTimer.Stop()
か?
Change
Timeout.Infinite を使用してタイマーのメソッドを呼び出すことで停止できます: http://msdn.microsoft.com/en-us/library/yz1c7148(v=vs.80).aspxを参照してください。
t.Change(Timeout.Infinite, Timeout.Infinite)
1 つのオプションはt.Dispose()
で、これは を破棄してTimer
停止します。
が次のように呼び出された場合Dispose
、オブジェクトを破棄する前に、キューに入れられたすべてのタイマー コールバックが終了するまで 10 秒間待機する必要があります。
Dim waitHnd As WaitHandle = New AutoResetEvent(False)
t.Dispose(waitHnd)
waitHnd.WaitOne(10000)
これは、Change メソッドを使用して行うことができます。次のコメントを参照してください。
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx