10

System.Threading.Timerコールバック メソッドで停止するにはどうすればよいですか。を参照MSDNしましたが、有用なものが見つかりませんでした。助けてください。

4

6 に答える 6

15

まず、コールバック メソッドはタイマー インスタンスをスコープ内に持つ必要があります。

それから簡単な呪文

timerInstance.Change( Timeout.Infinite , Timeout.Infinite ) ;

タイマーをシャットダウンします。状態によっては、タイマーが変更後にもう一度コールバック メソッドを呼び出す可能性があると思います。

于 2012-08-13T16:41:29.537 に答える
4
timer.Change(Timeout.Infinite, Timeout.Infinite);
于 2012-08-13T16:36:10.313 に答える
2

これを試して:

必要に応じて、タイマーにコールバック メソッドの実行を継続させ、以下のコードを含めることができます。

private void CreatorLoop(object state)  
 { 
   if (Monitor.TryEnter(lockObject) 
   { 
     try 
     { 
       // Work here 
     } 
     finally 
     { 
       Monitor.Exit(lockObject); 
     } 
   } 
 } 

このリンクもチェックしてください:

コールバック メソッドでタイマーを停止する

于 2012-08-13T16:38:52.977 に答える
1

を呼び出すだけmyTimer.Change(Timeout.Infinite, Timeout.Infinite)です。

技術的には、タイマーを停止するには、最初のパラメーター ( dueTime) のみを指定する必要があります。Timeout.Infinite

詳細については、「Timer.Change メソッド」を参照してください。

于 2012-08-13T16:36:55.807 に答える