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/) –