12[DebuggerDisplay(
"Count = {Count}, Type = {_collection}")]
56 return _occupiedNodes.CurrentCount == 0;
71 bool ICollection.IsSynchronized
80 object ICollection.SyncRoot
504 if (num >
int.MaxValue)
803 long num = (long)
timeout.TotalMilliseconds;
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
bool TryTake([MaybeNullWhen(false)] out T item, int millisecondsTimeout)
bool TryTakeWithNoTimeValidation([MaybeNullWhen(false)] out T item, int millisecondsTimeout, CancellationToken cancellationToken, CancellationTokenSource combinedTokenSource)
static int AddToAny(BlockingCollection< T >[] collections, T item, CancellationToken cancellationToken)
static int TryTakeFromAny(BlockingCollection< T >[] collections, out T? item, int millisecondsTimeout, CancellationToken cancellationToken)
static int TryAddToAny(BlockingCollection< T >[] collections, T item, int millisecondsTimeout)
bool TryAdd(T item, int millisecondsTimeout)
bool TryAdd(T item, TimeSpan timeout)
static int TryTakeFromAny(BlockingCollection< T >[] collections, out T? item, TimeSpan timeout)
static int TryAddToAnyCore(BlockingCollection< T >[] collections, T item, int millisecondsTimeout, CancellationToken externalCancellationToken)
bool TryTake([MaybeNullWhen(false)] out T item, TimeSpan timeout)
static void ValidateTimeout(TimeSpan timeout)
bool TryTake([MaybeNullWhen(false)] out T item)
IEnumerable< T > GetConsumingEnumerable(CancellationToken cancellationToken)
BlockingCollection(IProducerConsumerCollection< T > collection, int boundedCapacity)
static int TryAddToAnyFast(BlockingCollection< T >[] collections, T item)
void Initialize(IProducerConsumerCollection< T > collection, int boundedCapacity, int collectionCount)
static int TryTakeFromAnyCoreSlow(BlockingCollection< T >[] collections, out T item, int millisecondsTimeout, bool isTakeOperation, CancellationToken externalCancellationToken)
static int UpdateTimeOut(uint startTime, int originalWaitMillisecondsTimeout)
void Add(T item, CancellationToken cancellationToken)
bool TryAddWithNoTimeValidation(T item, int millisecondsTimeout, CancellationToken cancellationToken)
static void ValidateCollectionsArray(BlockingCollection< T >[] collections, bool isAddOperation)
BlockingCollection(int boundedCapacity)
void CancelWaitingConsumers()
IEnumerable< T > GetConsumingEnumerable()
static int TryTakeFromAny(BlockingCollection< T >[] collections, out T? item)
bool TryTake([MaybeNullWhen(false)] out T item, int millisecondsTimeout, CancellationToken cancellationToken)
static int TryTakeFromAnyCore(BlockingCollection< T >[] collections, out T item, int millisecondsTimeout, bool isTakeOperation, CancellationToken externalCancellationToken)
virtual void Dispose(bool disposing)
static int TryAddToAny(BlockingCollection< T >[] collections, T item, int millisecondsTimeout, CancellationToken cancellationToken)
bool TryAdd(T item, int millisecondsTimeout, CancellationToken cancellationToken)
static int TakeFromAny(BlockingCollection< T >[] collections, out T? item, CancellationToken cancellationToken)
static int TryTakeFromAny(BlockingCollection< T >[] collections, out T? item, int millisecondsTimeout)
CancellationTokenSource _consumersCancellationTokenSource
static void ValidateMillisecondsTimeout(int millisecondsTimeout)
void CopyTo(T[] array, int index)
void CancelWaitingProducers()
BlockingCollection(IProducerConsumerCollection< T > collection)
T Take(CancellationToken cancellationToken)
CancellationTokenSource _producersCancellationTokenSource
static int TryAddToAny(BlockingCollection< T >[] collections, T item, TimeSpan timeout)
SemaphoreSlim _occupiedNodes
static List< WaitHandle > GetHandles(BlockingCollection< T >[] collections, CancellationToken externalCancellationToken, bool isAddOperation, out CancellationToken[] cancellationTokens)
volatile int _currentAdders
IProducerConsumerCollection< T > _collection
static int TryAddToAny(BlockingCollection< T >[] collections, T item)
static int TakeFromAny(BlockingCollection< T >[] collections, out T? item)
static int AddToAny(BlockingCollection< T >[] collections, T item)
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
bool TryAdd(TKey key, TValue value)
Enumerator GetEnumerator()
void Add(TKey key, TValue value)
static void SuppressFinalize(object obj)
static CultureInfo InvariantCulture
static string BlockingCollection_CopyTo_NonNegative
static string BlockingCollection_ValidateCollectionsArray_LargeSize
static string BlockingCollection_Take_CollectionModified
static string BlockingCollection_CopyTo_MultiDim
static string ConcurrentCollection_SyncRoot_NotSupported
static string BlockingCollection_CopyTo_IncorrectType
static string BlockingCollection_Add_Failed
static string BlockingCollection_CantTakeAnyWhenAllDone
static string Format(string resourceFormat, object p1)
static string BlockingCollection_ValidateCollectionsArray_ZeroSize
static string BlockingCollection_ValidateCollectionsArray_NullElems
static string BlockingCollection_ctor_BoundedCapacityRange
static string BlockingCollection_CantAddAnyWhenCompleted
static string BlockingCollection_TimeoutInvalid
static string BlockingCollection_ValidateCollectionsArray_DispElems
static string BlockingCollection_CantTakeWhenDone
static string Collection_CopyTo_TooManyElems
static string BlockingCollection_Add_ConcurrentCompleteAdd
static string BlockingCollection_Completed
static string BlockingCollection_ctor_CountMoreThanCapacity
static string BlockingCollection_Disposed
static CancellationTokenSource CreateLinkedTokenSource(CancellationToken token1, CancellationToken token2)
static int CompareExchange(ref int location1, int value, int comparand)
static int Decrement(ref int location)
WaitHandle AvailableWaitHandle
static Thread CurrentThread
static int WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout)
void CopyTo(Array array, int index)
IEnumerator GetEnumerator()
static CancellationToken None