0

を作成して開始した場合System.Threading.Timer

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

どうすれば止められますか?

System.Timers.Timeraと callを使用する方が簡単でしょうTimer.Stop()か?

4

3 に答える 3

1

ChangeTimeout.Infinite を使用してタイマーのメソッドを呼び出すことで停止できます: http://msdn.microsoft.com/en-us/library/yz1c7148(v=vs.80).aspxを参照してください。

t.Change(Timeout.Infinite, Timeout.Infinite)
于 2012-11-15T08:20:30.247 に答える
0

1 つのオプションはt.Dispose()で、これは を破棄してTimer停止します。

が次のように呼び出された場合Dispose、オブジェクトを破棄する前に、キューに入れられたすべてのタイマー コールバックが終了するまで 10 秒間待機する必要があります。

Dim waitHnd As WaitHandle = New AutoResetEvent(False)
t.Dispose(waitHnd)
waitHnd.WaitOne(10000)
于 2012-11-15T09:02:24.140 に答える
0

これは、Change メソッドを使用して行うことができます。次のコメントを参照してください。

http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx

于 2012-11-15T08:24:14.153 に答える