有一个ConcurrentQueue实例和两个同时访问它的线程。一个线程继续使项目入队(可能在100微秒内使少数项目入队),另一个线程TryDequeue逐项入队并进行一些处理。有一个ManualResetEvent在任何项目入队后向处理线程发出信号(这与该问题不太相关)
在这种情况下,有可能以错误的顺序将项目添加到ConcurrentQueue。我知道它是线程安全的,但只想确保在入队和出队速度更快时,它是否不会与项目顺序混淆。
最佳答案
绝对不可能使这些物品乱序。
首先,根据定义,队列将强制执行FIFO顺序:将元素放在一端,然后将元素取出到另一端。而且由于这是由单一生产者-单一消费者模型完成的,因此绝对安全。
关于c# - 在ConcurrentQueue中入队和TryDequeue,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9499183/