Я пытаюсь загрузить несколько файлов из Интернета и ждать их завершения. Это консольное приложение на С#, которое я запускаю, поэтому не требуется обработчик событий индикатора выполнения. Однако в настоящее время он просто продолжает выполнять код, даже если все файлы не были загружены.
- 1.Загрузить все файлы!
- 2.Finished Download File A
- 3.Finished Загрузка всех файлов!
- 4.Finished Загрузка файла B
- 5.Finished Загрузка файла C
Как бы вы дождались завершения всех файлов загрузки async.
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);
}
}
}