他のスレッドを待つことができるイベントについて読みました:AutoResetEvent
とManualResetEvent
.
これら2つのクラスの違いは何ですか? 並行性の高いプログラムにはどのクラスが適していますか?
他のスレッドを待つことができるイベントについて読みました:AutoResetEvent
とManualResetEvent
.
これら2つのクラスの違いは何ですか? 並行性の高いプログラムにはどのクラスが適していますか?
違いは、イベントが通知される (設定される) ときに何が起こるかです。
一般に、手動リセット イベントを使用する方が簡単だと思います。ほとんどの場合、特定の時点でイベントの状態を判断する方が簡単だからです。
とはいえ、待機中のスレッドの1 つだけが通知されることが保証されているため、自動リセット イベントの動作が同期の実現に適している場合があります。そのため、プロデューサー/複数のコンシューマーのシナリオで、1 つのコンシューマーのみに通知する必要がある場合は、自動リセット イベントを検討する必要があります。