BlockingCollection<T>.TryTake Method (T, TimeSpan)
Tries to remove an item from the BlockingCollection<T> in the specified time period.
Namespace: System.Collections.Concurrent
Assembly: System (in System.dll)
Parameters
- item
- Type: T
The item to be removed from the collection.
- timeout
- Type: System.TimeSpan
An object that represents the number of milliseconds to wait, or an object that represents -1 milliseconds to wait indefinitely.
Return Value
Type: System.Booleantrue if an item could be removed from the collection within the specified time; otherwise, false.
| Exception | Condition |
|---|---|
| ObjectDisposedException | The BlockingCollection<T> has been disposed. |
| ArgumentOutOfRangeException | timeout is a negative number other than -1 milliseconds, which represents an infinite time-out. -or- timeout is greater than MaxValue. |
| InvalidOperationException | The underlying collection was modified outside of 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 ConcurrentConcurrentQueue 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>.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.