56

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

4

4 に答える 4

82

タイマーを使用します。基本的に3種類あり、それぞれ目的に合わせて使い分けています。

Windows フォーム アプリケーションでのみ使用します。このタイマーはメッセージ ループの一部として処理されるため、タイマーは高負荷時にフリーズする可能性があります。

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

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

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

于 2012-07-02T15:43:35.510 に答える
46

このために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) { }

詳細については、Timer クラス (.NET 4.6 および 4.5)を参照してください。

于 2012-07-02T16:15:40.313 に答える
10

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

于 2012-07-02T15:43:15.820 に答える