3
我正在嘗試使用任務並行庫爲一系列項目調度函數調用。任務並行庫使用幫助
下不起作用
List<Task> tasks = new List<Task>();
foreach(var someValue in aCollection)
{
var t = Task.Factory.StartNew(() => DoSomeWork(someValue));
tasks.Add(t);
}
Task.WaitAll(tasks.ToArray());
但下面的工作
Task.WaitAll(aCollection.Select(a => Task.Factory.StartNew(() => DoSomeWork(a))).ToArray());
對於其執行一次,然後停止第一種方法。我不確定它是否覆蓋引用或其他內容。有人可以請。說明?
還有一種方法可以將某個序列號傳遞給任務,該任務可用於識別首先安排哪個任務。我的意思是我想等待所有的任務完成,然後根據集合中的順序排序結果。
見http://stackoverflow.com/questions/2956328/foreach-failing-when-using-parallel-task-library/3155693#3155693 – 2011-02-07 23:55:08
@Jim:謝謝。關於序列事物的任何想法? – stackoverflowuser 2011-02-08 00:01:18