関数を繰り返し呼び出す System.Timers タイマーを使用する C# アプリケーションがあります。問題は、ワークロードによっては、関数呼び出しからの処理が特定の CPU 使用率 (98 ~ 100%) に達すると、後続のイベントがブロックされることです。
イベントがブロックされないように、このようなシナリオを防ぐ方法はありますか?
たとえば、タイマーのイベント ハンドラーは動的コードを実行する関数であり、処理に時間とリソースがかかる場合があります。このような処理中にブール値が true に設定され、後続のイベント呼び出しがログ ファイルに書き込まれます。ただし、イベントの処理で CPU 使用率が高くなると、それ以上のイベントはログ ファイルに書き込まれません。