web-dev-qa-db-ja.com

数秒ごとに機能を繰り返す

プログラムが開いてから数秒ごとに閉じるまで、機能を繰り返したいと思います。これをC#で行う最良の方法は何でしょうか?

52
user1071461

タイマーを使用します。 3つの基本的な種類があり、それぞれが異なる目的に適しています。

Windowsフォームアプリケーションでのみ使用します。このタイマーはメッセージループの一部として処理されるため、高負荷でタイマーを凍結できます。

同期性が必要な場合は、これを使用してください。つまり、タイマーを開始したスレッドでtickイベントが実行されるため、手間をかけずにGUI操作を実行できます。

これは最も強力なタイマーで、バックグラウンドスレッドでティックを起動します。これにより、GUIまたはメインスレッドをフリーズすることなく、バックグラウンドで操作を実行できます。

ほとんどの場合、System.Timers.Timerをお勧めします。

78
Kendall Frey

このためにSystem.Timers.Timer最適な動作

// Create a timer
myTimer = new System.Timers.Timer();
// Tell the timer what to do when it elapses
myTimer.Elapsed += new ElapsedEventHandler(myEvent);
// Set it to go off every five seconds
myTimer.Interval = 5000;
// And start it        
myTimer.Enabled = true;

// Implement a call with the right signature for events going off
private void myEvent(object source, ElapsedEventArgs e) { }

タイマークラス(.NET 4.6および4.5) を参照してください

42
IvoTops

タイマー を使用します。 .NETにはさまざまなタイマーが付属していることに注意してください。 この記事 は違いをカバーしています。

11
Brian Rasmussen