ConcurrentQueue<T> TryDequeue Method

ConcurrentQueue<T>  类中的出队列方法:

1.TryDequeue (out T result)

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

该方法用于在并发队列的开始时移除和返回队列中的对象。

代码

public bool TryDequeue(
	out T result
)

移除对象元素成功,返回true,否则返回false。

result 为从队列中出队的对象。

注意,MSDN上说如果当时使用入队的方式,压入三个对象 a,b,c,当有两个线程去访问这个方法TryDequeue让对象a,b,c依次进行出队列,

那么假设线程1让a 出队,线程2让b出队,之后线程1又让c出队,因为有三个对象在队列中,所以该方法都能返回true,但是线程2并不会阻塞,

依然会继续执行TryDequeue方法进行出队列操作,然而队列已经为空,故此时方法将会返回false.

  

原文地址:https://www.cnblogs.com/vpersie2008/p/4758717.html