这是我的循环是什么样子:Parallel.ForEach loopResult.Stop后不返回()
var loopResult = Parallel.ForEach(folder.Items.Cast<object>(), (item, loopState) =>
{
if (!loadData)
{
loopState.Stop();
return;
}
DoSomeWork(item);
}
);
if (loopResult.IsCompleted)
{
Debug.WriteLine("done");
}
的问题是代码永远不会获取if (loopResult.IsCompleted)
。对所有不同的线程执行return;
后,绝对没有任何反应。
“DoSomeWork”内部发生了什么? – Tudor 2012-03-31 12:03:18
这实际上是正确的问题,它试图在GUI线程上调用一个方法调用,该调用永远不会返回。 – user1151923 2012-04-02 15:26:24