System.Collections.Concurrent.BlockingCollection<T>
public class BlockingCollection<T> : IEnumerable<T>, IEnumerable, IReadOnlyCollection<T>, ICollection, IDisposable
namespace System.Collections.Concurrent
{
public class BlockingCollection<T> : IEnumerable<T>, IEnumerable, IReadOnlyCollection<T>, ICollection, IDisposable
{
public int BoundedCapacity { get; }
public int Count { get; }
public bool IsAddingCompleted { get; }
public bool IsCompleted { get; }
public BlockingCollection();
public BlockingCollection(IProducerConsumerCollection<T> collection);
public BlockingCollection(IProducerConsumerCollection<T> collection, int boundedCapacity);
public BlockingCollection(int boundedCapacity);
public void Add(T item);
public void Add(T item, CancellationToken cancellationToken);
public static int AddToAny(BlockingCollection<T>[] collections, T item);
public static int AddToAny(BlockingCollection<T>[] collections, T item, CancellationToken cancellationToken);
public void CompleteAdding();
public void CopyTo(T[] array, int index);
public void Dispose();
protected virtual void Dispose(bool disposing);
public IEnumerable<T> GetConsumingEnumerable();
public IEnumerable<T> GetConsumingEnumerable(CancellationToken cancellationToken);
public T Take();
public T Take(CancellationToken cancellationToken);
public static int TakeFromAny(BlockingCollection<T>[] collections, out T item);
public static int TakeFromAny(BlockingCollection<T>[] collections, out T item, CancellationToken cancellationToken);
public T[] ToArray();
public bool TryAdd(T item);
public bool TryAdd(T item, int millisecondsTimeout);
public bool TryAdd(T item, int millisecondsTimeout, CancellationToken cancellationToken);
public bool TryAdd(T item, TimeSpan timeout);
public static int TryAddToAny(BlockingCollection<T>[] collections, T item);
public static int TryAddToAny(BlockingCollection<T>[] collections, T item, int millisecondsTimeout);
public static int TryAddToAny(BlockingCollection<T>[] collections, T item, int millisecondsTimeout, CancellationToken cancellationToken);
public static int TryAddToAny(BlockingCollection<T>[] collections, T item, TimeSpan timeout);
public bool TryTake(out T item);
public bool TryTake(out T item, int millisecondsTimeout);
public bool TryTake(out T item, int millisecondsTimeout, CancellationToken cancellationToken);
public bool TryTake(out T item, TimeSpan timeout);
public static int TryTakeFromAny(BlockingCollection<T>[] collections, out T item);
public static int TryTakeFromAny(BlockingCollection<T>[] collections, out T item, int millisecondsTimeout);
public static int TryTakeFromAny(BlockingCollection<T>[] collections, out T item, int millisecondsTimeout, CancellationToken cancellationToken);
public static int TryTakeFromAny(BlockingCollection<T>[] collections, out T item, TimeSpan timeout);
}
}