是否可以等待下载完成然后执行下一行代码?
WebClient wb = new WebClient();
wb.DownloadFileAsync(new Uri("url"), @"c:\tmp\file.exe");
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
//Code to run after download finished...
我知道我可以使用wb.DownloadFile,但不会就下载百分比提供反馈。
答案 0 :(得分:4)
如果您使用的是.net 4.5,则可以使用新的async/await
关键字和DownloadFileTaskAsync方法
async void DownloadSomeFile()
{
WebClient wb = new WebClient();
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
await wb.DownloadFileTaskAsync(new Uri("url"), @"c:\tmp\file.exe");
//Do the other work here
}
答案 1 :(得分:1)
是的,您可以使用.Net 4.5中引入的新await
关键字以及异步方法。
请参阅此link,了解如何让代码等待下载完成的MSDN演示。