TryDequeue Method

ConcurrentQueue<T>.TryDequeue Method

Tries to remove and return the object at the beginning of the concurrent queue.

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

public bool TryDequeue(
	out T result


Type: T%
When this method returns, if the operation was successful, result contains the object removed. If no object was available to be removed, the value is unspecified.

Return Value

Type: System.Boolean
true if an element was removed and returned from the beginning of the ConcurrentQueue<T> successfully; otherwise, false.

ConcurrentQueue<T> handles all synchronization internally. If two threads call TryDequeue(T) at precisely the same moment, neither operation is blocked. When a conflict is detected between two threads, one thread has to try again to retrieve the next element, and the synchronization is handled internally.

TryDequeue(T) tries to remove an element from the queue. If the method is successful, the item is removed and the method returns true; otherwise, it returns false. That happens atomically with respect to other operations on the queue. If the queue was populated with code such as q.Enqueue("a"); q.Enqueue("b"); q.Enqueue("c"); and two threads concurrently try to dequeue an element, one thread will dequeue a and the other thread will dequeue b. Both calls to TryDequeue(T) will return true, because they were both able to dequeue an element. If each thread goes back to dequeue an additional element, one of the threads will dequeue c and return true, whereas the other thread will find the queue empty and will return false.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

© 2015 Microsoft