Итерация ConcurrentQueue <T> - PullRequest
       41

Итерация ConcurrentQueue <T>

2 голосов
/ 21 октября 2010

Это безопасный способ итерации ConcurrentQueue<T>?

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

1 Ответ

5 голосов
/ 21 октября 2010

Просто сделай это вместо ...

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