This documentation is archived and is not being maintained.

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.

Public classBlockingCollection<T>Provides blocking and bounding capabilities for thread-safe collections that implement IProducerConsumerCollection<T>.
Public classConcurrentBag<T>Represents a thread-safe, unordered collection of objects.
Public classConcurrentDictionary<TKey, TValue>Represents a thread-safe collection of key-value pairs that can be accessed by multiple threads concurrently.
Public classConcurrentQueue<T>Represents a thread-safe first in-first out (FIFO) collection.
Public classConcurrentStack<T>Represents a thread-safe last in-first out (LIFO) collection.
Public classOrderablePartitioner<TSource>Represents a particular manner of splitting an orderable data source into multiple partitions.
Public classPartitionerProvides common partitioning strategies for arrays, lists, and enumerables.
Public classPartitioner<TSource>Represents a particular manner of splitting a data source into multiple partitions.

Public interfaceIProducerConsumerCollection<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.