我有一個大名單(1000以上),我使用Parallel.Foreach
循環,但我得到這個異常:並行的foreach大名單拋出異常
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at
System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at
System.Threading.Tasks.Task.Wait()
請讓我知道爲什麼我得到這個例外,並給我一個解決方案,以及如何提高並行性能foreach
?
var results = new List<BO>();
var localLockObject = new object();
Parallel.ForEach(
emails,
() => new List<BO>(), (email, state, localList) =>
{
var item = new BO();
localList.Add(item.Validate(email));
return localList;
},
finalResult => { lock (localLockObject) results.AddRange(finalResult); }
);
你肯定是異常被拋出在哪裏?你可以點擊「[複製異常詳細信息到剪貼板](http://blogs.msdn.com/b/saraford/archive/2008/08/07/did-you-know-you-can-copy-the-exception-詳細信息 - 一鍵從異常 - 助理-276.aspx)「併發布全文作爲您的問題的編輯?這也會讓我們看到任何內部的異常或與之相關的消息。 –