私の C# Windows サービスには以下の要件があります。
- Service の開始時に、db からデータのコレクションをフェッチし、メモリに保持します。
- 3 つの異なるスレッドから定期的に実行されるビジネス ロジックを用意します。
- 各スレッドは、手順 1 で説明したデータ コレクションからのデータの異なるサブセットを使用して、同じビジネス ロジックを実行します。各スレッドは、異なる結果セットを生成します。
- データ収集に変更が発生した場合、3 つのスレッドすべてが定期的に実行されます。
クライアントがサービスを呼び出すと、サービスはスレッド実行のステータスを返すことができる必要があります。
C# には、定期的なスレッド実行を実装するさまざまなメカニズムがあることを知っています。タイマー、スリープ状態のスレッド、イベント eventwaithandle など、この要件に最適なスレッド化メカニズムまたは設計パターンを理解しようとしています。