我有一个要同时执行的对象列表。
private List<Calculate_Data> ListOfDataToCalculate = new List<Calculate_Data>();
我有一个方法,它循环遍历as的列表,并调用StartCalculate()
如下:
public async void StartCalculating()
{
foreach (var alldata in ListOfDataToCalculate )
{
alldata.StartCalculate();
}
}
有没有一种方法可以将它们全部爆破,并使它们并行而不是按顺序alldata.StartCalculate()
?我知道我们可以使用
var calculatetask = Task.Run(() =>
{
alldata.StartCalculate();
});
但是,是否可以同时进行所有操作?有些对象执行时间更长,有些对象执行速度更快。结局并不重要。重要的是同时做所有事情。
谢谢
使用Parallel.ForEach
:
Parallel.ForEach(ListOfDataToCalculate, alldata =>
{
alldata.StartCalculate();
});