启动N异步方法的数目

本文关键字:异步方法 启动 | 更新日期: 2023-09-27 18:04:00

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

const int packageSize = 100;
var packages = Split(cars, packageSize);
BackgroundTaskManager.Run(async () =>
{
    foreach (var package in packages)
    {
        await _myService.AddCars(package);
    }
});

因此,如果我的用户上传560例如汽车,我的Split函数将返回6个包- 5与100汽车和1与60。

而不是有一个foreach循环是否有一个简单的方法,我可以启动n个异步方法,其中n是从我的分裂服务返回的包的数量,但我需要传递从分裂函数返回的每个单独的包到单独的方法,或者我上面使用的方法是最好的方法?

启动N异步方法的数目

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