BlockingCollection<T>::TryTakeFromAny Method (array<BlockingCollection<T>^>^, T%, Int32, CancellationToken)

.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(
	array<BlockingCollection<T>^>^ collections,
	[OutAttribute] T% item,
	int millisecondsTimeout,
	CancellationToken cancellationToken
)

Parameters

collections
Type: array<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.

cancellationToken
Type: System.Threading::CancellationToken

A cancellation token to observe.

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
OperationCanceledException

If the CancellationToken is canceled.

InvalidOperationException

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

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.

ObjectDisposedException

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

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: