私の WPF アプリケーションでは、3 つの異なる DispatcherTimer を使用しています。
- 1つは現在の時刻を表示するためのものです
- 1 つは、5 秒ごとに DB クエリを実行するためのものです。
- 3 つ目は、カスタム ボタンの値を 1 秒ごとに更新します。
プログラムの実行中に、多くの遅延やフリーズが発生します。たとえば、時間は正しく刻み始めますが、突然値がフリーズし、フリーズした後、たとえば時間が +3 秒増加します。
アプリケーション全体でこの動作が発生しています。複数のタイマーでこの問題を解決する適切な方法は何ですか?
編集:
DispatcherTimer を System.Timers 名前空間のタイマーに置き換えるのに問題があります。
//new code with timer
timerW = new Timer();
timerW.Elapsed += new ElapsedEventHandler(timerWegingen_Tick);
timerW.Interval = 5000;
timerW.Start();
//OLD Working Code
timerW = new DispatcherTimer();
timerW.Tick += new EventHandler(timerWegingen_Tick);
timerW.Interval = new TimeSpan(0, 0,5);
timerW.Start();
エラー : 「多くの UI コンポーネントがこれを必要とするため、呼び出しスレッドは STA でなければなりません。」
よろしくお願いします。