Concurrent名前空間

スレッド セーフなコレクションのクラスが定義されています。

これらのクラスを用いたとしても、ロックが不要になるわけではありません。FAQ :: Are all of the new concurrent collections lock-free? | .NET Parallel Programming

インターフェイス

インターフェイス 概念
IProducerConsumerCollection<T>  

クラス

クラス 概念 類似する非スレッド セーフなクラス
BlockingCollection<T> IProducerConsumerCollection<T>を実装するスレッドセーフなコレクションに、ブロック操作とサイズの上限の能力を提供  
ConcurrentBag<T> スレッドセーフな、順序づけられていないオブジェクトのコレクション  
ConcurrentDictionary<TKey,TValue> 複数のスレッドから同時にアクセスできる、スレッドセーフな、キーと値のペアのコレクション Dictionary<TKey,TValue>
ConcurrentQueue<T> スレッドセーフな、先入れ先出し (FIFO) のコレクション Queue<T>
ConcurrentStack<T> スレッドセーフな、後入れ先出し (LIFO) のコレクション Stack<T>
クラス 概念
Partitioner Provides common partitioning strategies for arrays, lists, and enumerables.
Partitioner<TSource> Represents a particular manner of splitting a data source into multiple partitions.
OrderablePartitioner<TSource> Represents a particular manner of splitting an orderable data source into multiple partitions.
Microsoft Learnから検索