我正在使用_webClient.OpenReadAsync(myURI)
下载文件,它可以正常下载文件。我想从0-20开始按顺序下载文件。应该下载第一个文件,然后是第二个,依此类推。
我在下面使用下载,但它不是我所期待的。
foreach (string s in files)
_webClient.OpenReadAsync(new Uri(string.Format("{0}{1}", selectedReciter.DownloadURL, s)));
如果第一个文件被下载,那么for
循环应该只继续到第二个,第三个等,然后是第二个,然后是第三个,依此类推。
答案 0 :(得分:1)
您正在打开用于异步读取 的网址,该字词意义重大。当文件开始读取时,该功能将无法完成,但它会更快地返回。
你需要做的是await
结果,如下所示:
async Task DownloadAll(List<string> addresses)
{
var wc = new WebClient();
foreach(var address in addresses)
await wc.OpenReadTaskAsync(address);
}
不要忘记首先添加NuGet包:Microsoft.Bcl.Async
。
答案 1 :(得分:0)
答案 2 :(得分:-1)
您可以使用阻止执行的同一方法的非异步版本,直到OpenRead流完成。