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

.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,
	TimeSpan timeout
)

Parameters

collections
Type: array<System.Collections.Concurrent::BlockingCollection<T>^>^

The array of collections.

item
Type: T%

The item removed from one of the collections.

timeout
Type: System::TimeSpan

A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds 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

timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue.

-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: