启动N个异步方法

时间:2014-05-18 19:09:33

标签: c# .net asynchronous

我目前有以下代码 - 在我的MVC控制器上,我从User获取汽车输入,然后异步调用服务传递一个由User上传的汽车包,调用外部WebService获取信息。:

const int packageSize = 100;
var packages = Split(cars, packageSize);

BackgroundTaskManager.Run(async () =>
{
    foreach (var package in packages)
    {
        await _myService.AddCars(package);
    }
});

因此,如果我的用户为例如汽车上传560,我的分离功能将返回6个pacakages - 5个有100辆汽车,1个有60个。

有一个简单的方法,我可以启动n个异步方法,而不是有一个foreach循环,其中n是从我的拆分服务返回的包的数量,但我需要将从Split函数返回的每个单独的包传递给个人方法还是上面我用过的方法最好的方法呢?

1 个答案:

答案 0 :(得分:2)

await Task.WhenAll(packages.Select(_myService.AddCars))