WebClient.DownloadFileAsync и выполнение действий в основном потоке после загрузки - C#
Формулировка задачи:
Здравствуйте, поставлена простая задача - скачать ZIP-архив, а после закачки распаковать его.
Качаю с помощью WebClient.DownloadFileAsync. Всё прекрасно качается, форма не виснет, полосочка прогресса заполняется. Далее я хочу выполнять действия со скачанным архивом в В итоге вставляю распаковку в событие DownloadFileCompleted. Но заметил, что код в этом событии выполняется тоже в отдельном потоке, а мне надо в главном.
Как бы так извернуться, что бы дождаться завершения асинхронной закачки, а потом в главном потоке уже работать с полученным архивом?
главном
потоке. ЗакачкаWebClient wb = new WebClient(); wb.DownloadFileCompleted += wb_DownloadFileCompleted; wb.DownloadProgressChanged += wb_DownloadProgressChanged; wb.DownloadFileAsync(new Uri("http://site.ru/file.zip"), @"C:\file.zip"); //Если я сразу же сюда вставлю код распаковывания, то будет исключение, потому что код запустится параллельно с закачкой, а архив ещё будет качаться.
Решение задачи: «WebClient.DownloadFileAsync и выполнение действий в основном потоке после загрузки»
textual
Листинг программы
while (wb.IsBusy) { }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д