Silverlightアプリケーションでは、500msごとに実行する必要があるコードブロックがあります。私はこれを達成するためにDispatcherTimerを使う予定です(下記のコードを参照)。DispatchTimer - 前のティックがまだ実行されている場合にティックイベントが発生するのを防ぐ
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 0, 0, 500); // 500 Milliseconds
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
しかし、コードブロックが実行に500ms以上かかることがあります(コードブロックはいくつかのWebサービス呼び出しを行います)。現在コールが進行中であれば、DispatcherTimerは別のイベントをトリガーしないことを確認するにはどうすればよいですか?どのような選択肢があり、何が最良の方法ですか?ロックを使用していますか?
私はWindows Phone用のSilverlightを使用していることを忘れていました。私はSystem.Timers.Timerを見つけることができません。 – Martin
@Martin:代わりに、System.Threading.Timerを使用してください。同じ基本原則:) –
1つの最後の質問ジョン。 System.Timers.Timerを使用すると、2つのティックイベントが同時に実行される可能性はありますか? – Martin