0

同期プリミティブの選択に固執しました。

これは事実です: 私は無限ループにあるスレッドのプールを持っており、何らかのイベントを待っています。そして、このイベントを呼び出す別のスレッド。イベントが発生すると、すべての待機中のスレッドが 1 回の反復を行い、再び待機中のイベントにフォールバックする必要があります。

これには manualResetEvent を使用する必要がありますか? 私は理解できません、保証はありますか、私が制御スレッドにこのようなものを書いた場合

event.Set();
event.Reset();

待機中のスレッドはすべて反復を行い、待機中のすべてのスレッドは反復を 2 回または 3 回ではなく 1 回だけ行います。

または、私の場合は別のプリミティブを使用する必要がありますか?

4

1 に答える 1

1

Monitor.Wait(someObject)ループ スレッド、およびMonitor.PulseAll(someObject)イベント発生スレッドで使用します。

于 2012-09-21T00:20:35.300 に答える