collections - 迭代 ConcurrentQueue<T>

标签 collections .net-4.0 thread-safety

这是一种安全的迭代方式吗 ConcurrentQueue<T> ?

while (cq.GetEnumerator().MoveNext())
{
    IIndexTask task;
    if (cq.TryDequeue(out task))
        task.Execute(service);
}

最佳答案

只需这样做...

IIndexTask task;
while (cq.TryDequeue(out task))
{
    task.Execute(service);
}

关于collections - 迭代 ConcurrentQueue<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987100/

相关文章:

c# - IEnumerable 和顺序

java - Collections.emptyList() 而不是空检查?

asp.net - 在iis 7.0上运行.net Framework 4.0网站的问题

wcf - 无法在本地计算机上运行 WCF 服务

c++ - 将 bool 值设置为 true 时是否需要原子 CAS

java - Collections.binarySearch 是如何工作的?

c# - Linq 上下文对象未注册为 System.IDisposable 对象的类型

c# - C# 中的 `??` 线程安全吗?

python - 为什么Python中使用多线程没有输出?

scala - Scala 2.9 和 Actors 中的并行集合