并行执行对象列表



我有一个要同时执行的对象列表。

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(); 
});

最新更新