В настоящее время у меня есть код ниже - на моем контроллере 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 pacakages - 5 с 100 автомобилями и 1 с 60.
Вместо того, чтобы иметь цикл foreach, есть простой способ, я могу запустить n число асинхронных методов, где n - количество пакетов, возвращаемых из моей службы split, но мне нужно было бы передать каждый отдельный пакет, возвращенный из функции Split, отдельным методам или Подход, который я использовал выше, лучший способ сделать это?
await Task.WhenAll(packages.Select(_myService.AddCars))