System.Collections.Concurrent 名前空間

スレッド セーフなコレクション クラスがいくつか用意されています。複数のスレッドがコレクションに同時にアクセスするときは必ず、これらのコレクション クラスを System.Collections 名前空間および System.Collections.Generic 名前空間の対応する型の代わりに使用する必要があります。

ただし、拡張メソッドや明示的なインターフェイスの実装を介したコレクション オブジェクトの要素へのアクセスは、スレッドセーフであるという保証はなく、呼び出し元による同期が必要になる場合があります。

クラス

BlockingCollection<T>

IProducerConsumerCollection<T> を実装するスレッド セーフなコレクションに、ブロッキングと範囲指定の機能を提供します。

ConcurrentBag<T>

オブジェクトの順序付けられていないスレッド セーフなコレクションを表します。

ConcurrentDictionary<TKey,TValue>

同時に複数のスレッドからアクセスできる、スレッド セーフなキーと値のペアのコレクションを表します。

ConcurrentQueue<T>

スレッド セーフな先入れ先出し (FIFO) コレクションを表します。

ConcurrentStack<T>

スレッド セーフな後入れ先出し (LIFO) コレクションを表します。

OrderablePartitioner<TSource>

並べ替え可能なデータ ソースを複数のパーティションに分割する特定の方法を表します。

Partitioner

配列、リスト、および列挙体に使用できる共通のパーティション方法を提供します。

Partitioner<TSource>

データ ソースを複数のパーティションに分割する特定の方法を表します。

インターフェイス

IProducerConsumerCollection<T>

プロデューサーまたはコンシューマーが使用するためのスレッド セーフなコレクションを操作するメソッドを定義します。 このインスタンスには、プロデューサー/コンシューマー コレクションの統一された表現が用意されています。BlockingCollection<T> のような高度な抽象化では、基になるストレージ機構としてこのコレクションを使用できます。

列挙型

EnumerablePartitionerOptions

パーティショナーのバッファリング動作を制御するオプションを指定します。