DispatchTimerを毎秒起動するように正しく設定しました-
OneSecondChecker = new DispatcherTimer();
OneSecondChecker.Tick += new EventHandler(OneSecondChecker_Tick);
OneSecondChecker.Interval = new TimeSpan(0, 0, 1);
OneSecondChecker.Start();
問題:そして、それは一定期間正しく発火し、その後は発火を停止します。
追加情報: 今、あなたはそれが何をするのか尋ねるかもしれませんか?OneSecondChecker_Tick()メソッドが実行されている場合はtrueに設定され、実行されていない場合はfalseに設定されるクラスレベル(静的)ブール変数があるため、このメソッドの2つのインスタンスが実行されていません。毎秒発砲するように設定されていても同時に。OneSecondChecker_Tick()が遅延なく実行されることを確認することはアプリケーションの要件です。また、無限ループで実行しようとはしていません。OneSecondChecker_Tick()が実行される前に、テーブル値が更新されているかどうかを確認する2番目のチェックがあります。「一種の」がOneSecondChecker_Tick()に実行を通知するのはそのテーブル値です。そのテーブル値は、別のアプリケーションによって更新されます。
メソッド自体の中で、TPLを使用してスレッドを並行して実行するための呼び出しがあります。それが何か関係があるのかどうかはわかりません。
編集 私はまだこれを理解することができませんでした。アプリケーションがフリーズしている可能性があります。しかし、タスクマネージャーはそうは言いません。アプリケーションがタスクマネージャー以外の場所から応答していないかどうかを確認することはできますか?