【发布时间】:2012-05-20 11:09:14
【问题描述】:
Task<string>[] tableOfWebClientTasks = new Task<string>[taskCount];
for (int i = 0; i < taskCount; i++)
{
tableOfWebClientTasks[i] = new WebClient().DownloadStringTask(allUrls[count - i - 1]);
}
Task.Factory.ContinueWhenAll(tableOfWebClientTasks, tasks =>
{
Parallel.ForEach(tasks, task =>
{
//Here I have result from each task.
//But information which url is executed on this task, is lost.
});
});
例如,我可以创建类(具有两个公共属性,一个用于任务,第二个用于 url)并返回实例。但是这个方法我连接了其他方法。
你有解决这个问题的办法吗?
【问题讨论】:
-
你为什么使用
ContinueWhenAll()和Paralell.ForEach()?每个Task上的ContinueWith()不是更好吗? -
那篇文章没有解释为什么你会这样做。为什么每个
Task上的ContinueWith()不适合您?
标签: c# task-parallel-library parallel-extensions