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.

Remarks

 

Classes

TypeReason
BlockingCollection<T>

Provides blocking and bounding capabilities for thread-safe collections that implement IProducerConsumerCollection`1.

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.

EnumerablePartitionerOptions

Specifies options to control the buffering behavior of a partitioner

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 BlockingCollection`1 can use the collection as the underlying storage mechanism.

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.