11
我試圖從互聯網上下載多個文件並等待所有文件完成。這是我正在運行的C#控制檯應用程序,因此不需要進度條事件處理程序。但是,即使所有文件都沒有被下載,它目前只是繼續執行代碼。下載多個文件異步並等待它們全部完成,然後執行代碼的其餘部分
- 1.下載所有文件!
- 2.Finished下載文件A
- 3.Finished下載所有文件!
- 4.Finished下載文件B
- 5.Finished下載文件C
你會如何等待,直到所有異步下載文件完成。
private void DownloadMultipleFiles(List<DocumentObject> doclist)
{
foreach(var value in doclist){
try
{
using (WebClient webClient = new WebClient())
{
string downloadToDirectory = @Resources.defaultDirectory + value.docName;
webClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
webClient.DownloadFileCompleted += client_DownloadFileCompleted;
webClient.DownloadFileAsync(new Uri(value.docUrl), @downloadToDirectory);
//Add them to the local
Context.listOfLocalDirectories.Add(downloadToDirectory);
}
}
catch (Exception)
{
Errors.printError("Failed to download File: " + value.docName);
}
}
}
謝謝你的擡頭。確保我的localDirectories是線程安全的,並添加了我自己的完成事件處理程序。感謝您的幫助。這也有助於我理解我的其他異步任務的問題。 – user2100493 2013-05-13 04:04:39
這是可用的4.5 – Natxo 2016-09-13 15:10:00
如果試圖從網站下載的URL返回404 Not Found? – 2017-12-16 20:35:47