スレッド プールを使用せずに C# で定期的なタスク/スレッドを実行する方法はありますか (これは私が持っている主な要件の 1 つです)。
予想されるシナリオは次のとおりです。
- 定期的なスレッドは、(システムからの) タイマー イベントをブロック/待機します。
- タイマーが切れると、システムはスレッドに通知します。
- スレッドはいくつかのコードを実行します。
- スレッドは、システムからの次のタイマー イベントをブロック/待機します (スレッドが 1 つ以上のタイマー イベントを逃した場合、これは問題ないことに注意してください)。
これに最も近いのはSystem.Forms.Timer
.
プロパティを介してこれSystem.Timers.Timer
を処理できるようです。ただし、上記のシナリオに従ってSynchronizingObject
a を実装する方法がよくわかりません。ISynchronizeInvoke
私が見つけた実装用のコード サンプルはすべて、このISynchronizeInvoke
ような単純なシナリオを処理するには複雑すぎるように思えます。
上記のシナリオのように (スレッドプールを使用せずに) C# でこの機能を簡単に実装する方法はありますSystem.Forms.Timer
か?