BlockingCollection<T>::TryTake Method (T%, Int32, CancellationToken)
Tries to remove an item from the BlockingCollection<T> in the specified time period while observing a cancellation token.
Assembly: System (in System.dll)
public: bool TryTake( [OutAttribute] T% item, int millisecondsTimeout, CancellationToken cancellationToken )
Parameters
- item
-
Type:
T%
The item to be removed from the collection.
- 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::Booleantrue if an item could be removed from the collection within the specified time; otherwise, false.
| Exception | Condition |
|---|---|
| OperationCanceledException | The CancellationToken has been canceled. |
| ObjectDisposedException | The BlockingCollection<T> has been disposed or the underlying CancellationTokenSource has been disposed. |
| ArgumentOutOfRangeException | millisecondsTimeout is a negative number other than -1, which represents an infinite time-out. |
| InvalidOperationException | The underlying collection was modified outside this BlockingCollection<T> instance. |
The order in which an item is removed depends on the type of collection used to create the BlockingCollection<T> instance. When you create a BlockingCollection<T> object, you can specify the type of collection to use. For example, you could specify a ConcurrentQueue<T> object for first in, first out (FIFO) behavior, or a ConcurrentStack<T> object for last in, first out (LIFO) behavior. You can use any collection class that implements the IProducerConsumerCollection<T> interface. The default collection type for BlockingCollection<T> is ConcurrentQueue<T>.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1