【发布时间】:2014-07-01 18:18:35
【问题描述】:
我有一个 URL 列表 List<string>。我想遍历每个 URL 并下载页面上的内容。从 URL 下载内容的方法是异步的。我想等待每次迭代完成
foreach(string url in urlList)
{
await DownloadPage(url);
}
下载方法:
private async Task DownloadPage(string url)
{
// await Download content using HttpClient
// Save file
}
目前正在发生的事情是循环遍历每个 ForEach 而不等待它完成。
如何实现一个解决方案,使其在每次迭代时等待页面下载?
【问题讨论】:
-
“它正在循环遍历每个
ForEach而不等待它完成”该代码应该正在等待。 -
此代码应该正在等待。这就是等待的重点。 DownloadPage 是否返回已完成的任务?
-
我刚才问了一个类似的问题,我有一组正在运行的任务,想全部执行,然后“继续”执行其他任务。这是答案,它可能会有所帮助。 stackoverflow.com/a/18091802/396861
-
除非您在
DownloadPage中做一些奇怪的事情,否则您的代码应该可以按预期工作。
标签: c#