0
我想使用多線程。我想運行的Task
列表。還有在兩個選擇對我來說,我喜歡寫在下面兩個代碼:使用Parallel.ForEach或填寫列表<Task>通過foreach
List<Task> taskList=new List<Task>();
foreach (var item in itemList)
{
taskList.Add(Task.Factory.StartNew(()=> DoTasks(item,new Random().Next(15,40))));
}
Task.WaitAll(taskList.ToArray());
Console.WriteLine("All Tasks Done!");
這:
Parallel.ForEach(itemList, item => DoTasks(item, new Random().Next(15, 40)));
Console.WriteLine("All Tasks Done!");
我的問題:
這是更好的性能?
Parallel.ForEach
是否有ThreadPool
用於管理打開的任務?
有什麼辦法可以讓這個更好?
這完全取決於任務在做什麼,有很多應用程序運行並行for-每個都不恰當,所以請提供更多的信息,解釋你正試圖完成以獲得最佳答案。 – Kodaloid
@Dmitry這只是示例代碼,但我編輯的問題。 –
[比賽你的馬](https://ericlippert.com/2012/12/17/performance-rant/) –