.NET 3.x Загрузка файлов по очереди используя WebClient - C#
Формулировка задачи:
Есть List<string> в котором ссылки на скачку файлов. Циклом прохожу по каждой ссылке и загружаю файл используя WebClient. Проблема в том, что используя метод DownloadFile, зависает все приложение(а мне нужно отображать процесс в прогрессбар), а использую DownloadFileAsync пишет ошибку, что вебклиент не поддерживает параллельную скачку.
Решение задачи: «.NET 3.x Загрузка файлов по очереди используя WebClient»
textual
Листинг программы
- WebClient wc = new WebClient(); //поле класса
- //создаем обработчик события "файл загружен"
- client.DownloadFileCompleted += s=> {
- Stack<string> urls = (s as Stack<string>);
- if(urls.Count>0) {
- var file = urls.Pop();
- wc.DownloadFileAsync(new Uri(file.Item1), file.Item2, urls);
- }
- }
- //готовим стек для загрузки
- Stack<Tuple<string, string>> urls = new Stack<Tuple<string, string>>();
- urls.Push(new Tuple<string, string>(url, filename));
- ...
- //вызываем загрузку
- var file = urls.Pop();
- wc.DownloadFileAsync(new Uri(file.Item1), file.Item2, urls);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д