這是我的循環是什麼樣子: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