private Queue<string> _downloadUrls = new Queue<string>();
private void downloadFile(IEnumerable<string> urls)
{
foreach (var url in urls)
{
_downloadUrls.Enqueue(url);
}
DownloadFile();
}
private async Task DownloadFile()
{
if (_downloadUrls.Any())
{
WebClient client = new WebClient();
client.DownloadProgressChanged += ProgressChanged;
client.DownloadFileCompleted += Completed;
var url = _downloadUrls.Dequeue();
string FileName = url.Substring(url.LastIndexOf("/") + 1,
(url.Length - url.LastIndexOf("/") - 1));
await client.DownloadFileAsync(new Uri(url), "C:\\Test4\\" + FileName);
return;
}
}
错误在线:
await client.DownloadFileAsync(new Uri(url), "C:\\Test4\\" + FileName);
我该如何解决这个错误? 为什么会发生? 我给出了我认为的所有细节。
我添加了可能需要的其余代码。
最佳答案
WebClient.DownloadFileAsync
是一种基于事件的 API,早于任务和异步/等待。您需要等待 WebClient.DownloadFileTaskAsync
。
关于c# - 为什么我收到错误 Cannot await 'void' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41408673/