发送多个异步Web请求并编译所有响应

时间:2014-05-28 15:03:15

标签: .net asynchronous httpwebrequest taskfactory

我正在尝试遍历一组数据并为列表中的每个项目发送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);

0 个答案:

没有答案