たとえば、単一のバッキング ストアで複数の BlockingCollections をインスタンス化できるかどうかを知りたいです。
ConcurrentStack<object> theStack = new ConcurrentStack<object>();
BlockingCollection<object> blockingStack1 = new BlockingCollection<object>(theStack);
BlockingCollection<object> blockingStack2 = new BlockingCollection<object>(theStack);
この調査の動機は次のとおりです。BlockingCollectionDispose メソッドの呼び出しが必要です。これは、usingブロックを使用するとシームレスです。ただし、usingブロックは常に適切であるとは限らないため (プロデューサーとコンシューマーが異なるメソッドだけでなく異なるスレッドにも住んでいると考えてください)、Dispose を呼び出すために必要な簿記を行うことは、それほど簡単ではなくなり、エラーが発生しやすくなります。 . ただし、 を伝播するBlockingCollection代わりにバッキング ストアを伝播できれば、ブロックBlockingCollection内でローカルをローカルにインスタンス化できます。using
私の推測では、IProducerConsumerCollection インターフェイスには何もないため、BlockingCollection が依存する唯一のものであり、そうでないことを暗示しているようです。