#c# #asp.net
#c# #asp.net
Вопрос:
У меня есть ASP.NET приложению необходимо отправить несколько HTTP-запросов на разные конечные точки и объединить ответы со всех конечных точек для последующей обработки.
Мое текущее решение выглядит следующим образом:
-
Создайте список запросов, чтобы поместить все запросы
var requests = new List<Request>() {...}
-
Создавайте задачи для каждого запроса
var tasks = requests.ToDictionary( request => request, request => function(request, cts.Token));
Функция делегирования просто отправляет и получает ответ на каждый запрос:
async Task<Response> HandleRequest(Request request, CancellationToken ct) { ... await httpClient.PostAsync(...) ... }
-
Дождитесь завершения всех задач
await Task.WhenAll(tasks.Values);
Этот подход работает, но кажется не совсем параллельным, интересно, есть ли лучшее решение, которое могло бы обеспечить мне лучший параллелизм, что привело бы к повышению производительности?
Комментарии:
1. Привет, вы нашли какое-либо решение для этого?
2. Пока нет, сейчас я все еще использую задачу. Когда все подходят.