Лучшая практика для отправки / получения нескольких HTTP-запросов в ASP.NET

#c# #asp.net

#c# #asp.net

Вопрос:

У меня есть ASP.NET приложению необходимо отправить несколько HTTP-запросов на разные конечные точки и объединить ответы со всех конечных точек для последующей обработки.

Мое текущее решение выглядит следующим образом:

  1. Создайте список запросов, чтобы поместить все запросы

     var requests = new List<Request>() {...}
      
  2. Создавайте задачи для каждого запроса

     var tasks = requests.ToDictionary(
            request => request, request => function(request, cts.Token));
      

    Функция делегирования просто отправляет и получает ответ на каждый запрос:

     async Task<Response> HandleRequest(Request request, CancellationToken ct)
    {
    ...
        await httpClient.PostAsync(...)
    ...
    }
      
  3. Дождитесь завершения всех задач

     await Task.WhenAll(tasks.Values);
      

Этот подход работает, но кажется не совсем параллельным, интересно, есть ли лучшее решение, которое могло бы обеспечить мне лучший параллелизм, что привело бы к повышению производительности?

Комментарии:

1. Привет, вы нашли какое-либо решение для этого?

2. Пока нет, сейчас я все еще использую задачу. Когда все подходят.