迭代ConcurrentQueue <T>

Ben*_*ter 2 collections .net-4.0 thread-safety

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

while (cq.GetEnumerator().MoveNext())
{
    IIndexTask task;
    if (cq.TryDequeue(out task))
        task.Execute(service);
}
Run Code Online (Sandbox Code Playgroud)

Luk*_*keH 5

只是这样做......

IIndexTask task;
while (cq.TryDequeue(out task))
{
    task.Execute(service);
}
Run Code Online (Sandbox Code Playgroud)