Начните N Количество асинхронных методов

1

В настоящее время у меня есть код ниже - на моем контроллере 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, отдельным методам или Подход, который я использовал выше, лучший способ сделать это?

Теги:
asynchronous

1 ответ

2
Лучший ответ
await Task.WhenAll(packages.Select(_myService.AddCars))
  • 1
    Привет. Можете ли вы добавить немного информации о том, как это работает, если это возможно?
  • 0
    Выдает следующую ошибку, к сожалению, с кодом на месте - объект связи, System.ServiceModel.Channels.HttpChannelFactory`1 + HttpRequestChannel [System.ServiceModel.Channels.IRequestChannel], не может использоваться для связи, потому что он был прерван.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню