1

我正在尝试遍历一组数据并为列表中的每个项目发送 Web 请求。我想异步发送每个 Web 请求并继续发送剩余的请求。

棘手的是我想捕获并编译所有这些请求的响应。

我只是不确定任务工厂的工作原理以及我的解决方案是否真的在做我想做的事情。

这是我的 for 循环中的内容:

var runningTasks = new List<Task<string>>();
var taskResp = Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null);
var taskResult = taskResp.ContinueWith(t => new StreamReader(t.Result.GetResponseStream()).ReadToEnd().Trim());
runningTasks.Add(taskResult);

Task.WaitAll(runningTasks.ToArray());
IEnumerable<string> results = runningTasks.Select(t => t.Result);
4

0 回答 0