在ASP.NET中发送/接收多个HTTP请求的最佳实践

时间:2016-10-24 03:43:48

标签: 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);
    
  4. 这种方法有效,但似乎并不是真正的并行,我想知道是否有更好的解决方案可以给我更好的并行性,从而产生更好的性能?

0 个答案:

没有答案