这是一种迭代ConcurrentQueue<T>
的安全方式吗?
while (cq.GetEnumerator().MoveNext())
{
IIndexTask task;
if (cq.TryDequeue(out task))
task.Execute(service);
}
答案 0 :(得分:5)
只需这样做......
IIndexTask task;
while (cq.TryDequeue(out task))
{
task.Execute(service);
}