Queue.Count 线程安全吗?

jav*_*red 6 c#

我需要一个线程来修改 Queue (添加和删除元素),另一个线程仅调用Queue.Count. 它安全吗还是我需要使用locksor ConcurrentQueue

Hen*_*man 4

根据文档,Queue 属性不是线程安全的。

但它是一个原子 int,可能发生的最糟糕的情况是您读取了错误(过时)的值。这可能是也可能不是问题。

但是,由于您必须采取一些措施来防止您的读取线程缓存您可能还需要的值lock()

  • _atomic_ 这个词回答说:不。但理论上,队列可以在入队或出队期间将其设置为一些奇怪的值,所以这仍然不是一个好主意。 (2认同)