System.Collections.Concurrent Namespace
The System.Collections.Concurrent namespace provides several thread-safe collection classes that should be used in place of the corresponding types in the System.Collections and System.Collections.Generic namespaces whenever multiple threads are accessing the collection concurrently.
However, members accessed through one of the interfaces the current collections implement, including extension methods, are not guaranteed to be thread safe and may need to be synchronized by the caller.
| Class | Description | |
|---|---|---|
![]() | BlockingCollection<T> | Provides blocking and bounding capabilities for thread-safe collections that implement IProducerConsumerCollection<T>. |
![]() | ConcurrentBag<T> | Represents a thread-safe, unordered collection of objects. |
![]() | ConcurrentDictionary<TKey, TValue> | Represents a thread-safe collection of key/value pairs that can be accessed by multiple threads concurrently. |
![]() | ConcurrentQueue<T> | Represents a thread-safe first in-first out (FIFO) collection. |
![]() | ConcurrentStack<T> | Represents a thread-safe last in-first out (LIFO) collection. |
![]() | OrderablePartitioner<TSource> | Represents a particular manner of splitting an orderable data source into multiple partitions. |
![]() | Partitioner | Provides common partitioning strategies for arrays, lists, and enumerables. |
![]() | Partitioner<TSource> | Represents a particular manner of splitting a data source into multiple partitions. |
| Interface | Description | |
|---|---|---|
![]() | IProducerConsumerCollection<T> | Defines methods to manipulate thread-safe collections intended for producer/consumer usage. This interface provides a unified representation for producer/consumer collections so that higher level abstractions such as System.Collections.Concurrent.BlockingCollection<T> can use the collection as the underlying storage mechanism. |
| Enumeration | Description | |
|---|---|---|
![]() | EnumerablePartitionerOptions | Specifies options to control the buffering behavior of a partitioner |


