5

BlockingCollection私は繰り返される要素と並行しています。個別の要素を追加または取得するためにどのように変更できますか?

4

1 に答える 1

6

のデフォルトのバッキング ストアBlockingCollectionConcurrentQueue. 他の誰かが指摘したように、それを使用して個別のアイテムを追加するのはかなり困難です。

ただし、 を実装する独自のコレクション型を作成し、それをコンストラクターIProducerConsumerCollectionに渡すことができます。BlockingCollection

ConcurrentDictionary現在キューにあるアイテムのキーを含む を想像してください。アイテムを追加するには、最初に辞書を呼び出します。TryAddアイテムが辞書にない場合は追加し、キューにも追加します。Take(およびTryTake) キューから次の項目を取得し、辞書から削除して、戻ります。

並行があればいいのですがHashTable、ないので、 とやる必要がありますConcurrentDictionary

于 2011-10-04T21:16:12.630 に答える