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