BlockingCollection<T>.TryTakeFromAny Method (BlockingCollection<T>[], T, Int32)

.NET Framework (current version)
 

Tries to remove an item from any one of the specified BlockingCollection<T> instances.

Namespace:   System.Collections.Concurrent
Assembly:  System (in System.dll)

public static int TryTakeFromAny(
	BlockingCollection<T>[] collections,
	out T item,
	int millisecondsTimeout
)

Parameters

collections
Type: System.Collections.Concurrent.BlockingCollection<T>[]

The array of collections.

item
Type: T

The item removed from one of the collections.

millisecondsTimeout
Type: System.Int32

The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Return Value

Type: System.Int32

The index of the collection in the collections array from which the item was removed, or -1 if an item could not be removed.

Exception Condition
ObjectDisposedException

At least one of the BlockingCollection<T> instances has been disposed.

ArgumentNullException

The collections argument is null.

ArgumentOutOfRangeException

millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

-or-

The count of collections is greater than the maximum size of 62 for STA and 63 for MTA.

ArgumentException

The collections argument is a 0-length array or contains a null element.

InvalidOperationException

At least one of the underlying collections was modified outside of its BlockingCollection<T> instance.

A call to TryTakeFromAny may block until an item is available to be removed.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Return to top
Show: