BlockingCollection<T>クラス

特徴

  • producer/consumer パターンの実装
  • 複数のスレッドからの、追加と削除
  • コレクションがいっぱいのときに追加が、空のときに削除がブロックされる
  • 追加や削除を処理中に取り消せる
Remarks - BlockingCollection<T> Class (System.Collections.Concurrent) | Microsoft Learn

コンストラクタ

public BlockingCollection (
    System.Collections.Concurrent.IProducerConsumerCollection<T> collection,
    int boundedCapacity
    );
BlockingCollection<T>(IProducerConsumerCollection<T>, Int32) - BlockingCollection<T> コンストラクター (System.Collections.Concurrent) | Microsoft Learn

collectionには基礎となるデータストアとして用いるコレクションを指定します。これに指定できるのはIProducerConsumerCollection<T>インターフェイスを実装したクラスであり、これには

の3つがあります。Type Parameters - IProducerConsumerCollection<T> Interface (System.Collections.Concurrent) | Microsoft Learn

public BlockingCollection ();

collectionを省いた形式では、基礎となるデータストアはConcurrentQueue<T>となります。

Microsoft Learnから検索