私は持っていますQueue<T> _q = new Queue<T>();
それを設定するスレッドは常に 1 つだけです。_q.Enqueue(msg);
それを消費するスレッドは常に 1 つだけです。_q.Dequeue();
両方のスレッドでロックフリーになりたい。パフォーマンスは重要ですが、安全が第一です。
を作る必要があり_q
ますConcurrentQueue<T>
か?
UPD
これは重要です。書き込みスレッドがアイテムをエンキューした直後に、読み取りスレッドがアイテムを正常にデキューすることを確認する必要はありません。いくつかのfalse
デキューが行われる場合 - それは問題ありません。