C# 启动N个异步方法

C# 启动N个异步方法,c#,.net,asynchronous,C#,.net,Asynchronous,我目前有以下代码-在我的MVC控制器上,我从用户那里获取汽车输入,然后异步调用一个服务,传入一个由用户上传的汽车包,该包调用外部Web服务来获取信息: const int packageSize = 100; var packages = Split(cars, packageSize); BackgroundTaskManager.Run(async () => { foreach (var package in packages) { await _m

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

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

BackgroundTaskManager.Run(async () =>
{
    foreach (var package in packages)
    {
        await _myService.AddCars(package);
    }
});
因此,如果我的用户上传560辆汽车,我的分割功能将返回6个数据包-5辆100辆汽车,1辆60辆


有没有一种简单的方法可以代替foreach循环启动n个异步方法,其中n是从拆分服务返回的包数,但我需要将从拆分函数返回的每个包传递给各个方法,或者我上面使用的方法是最好的方法?

Hi-可以吗如果可能的话,请围绕这一点提供一些信息,以及这是如何工作的?很遗憾,代码到位时会引发以下错误-通信对象System.ServiceModel.Channels.HttpChannelFactory`1+HttpRequestChannel[System.ServiceModel.Channels.IRequestChannel],无法用于通信,因为它已被中止。
await Task.WhenAll(packages.Select(_myService.AddCars))