С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/48: Рейтинг темы: голосов - 48, средняя оценка - 4.65
3 / 3 / 3
Регистрация: 30.09.2014
Сообщений: 79
1
.NET 4.x

Как скачивать несколько файлов через WebClient по очереди, через DownloadFileAsync

17.02.2016, 00:11. Показов 9689. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи. Столкнулся с проблемой по скачиванию нескольких файлов друг за другом.
Фулл код как скачиваю:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void DownloadMPQ(Uri u, string s)
        {
            WebClient web = new WebClient();
            web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Download);
            web.DownloadFileCompleted += new AsyncCompletedEventHandler(DownComp);
            web.DownloadFileAsync(u, s);
        }
        void DownComp(object sender, AsyncCompletedEventArgs e)
        {
            NotificShow(String.Format("'{0}' скачан.", ThisFile));
        }
        void Download(object sender, DownloadProgressChangedEventArgs e)
        {
            long q = e.TotalBytesToReceive / 1024;
            prgDownload.Properties.Maximum = (int)q;
            prgDownload.EditValue = e.BytesReceived / 1024;
        }
И как вызываю (на примере 1 файла)
C#
1
DownloadMPQ(new Uri("http://localhost/mp.mpq"), "mp.mpq");
В итоге он мне начинает качать все файлы подряд, т.е. в несколько потоков.
Вопрос все таки такой: как мне дождаться скачивания 1 файла и начать качать 2й? Новый поток? Пробовал. Не двигается прогресс бар.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.02.2016, 00:11
Ответы с готовыми решениями:

WebClient. Как правильно скачивать несколько файлов асинхронно?
Подскажите как правильно скачивать несколько файлов асинхронно? сейчас для каждого файла свой...

Асинхронная загрузка файлов методом WebClient.DownloadFileAsync
Вопрос адресуется в первую очередь профессионалам. При разработке приложения возникла...

Ссылки для скачивания с помощью WebClient.DownloadFile и WebClient.DownloadFileAsync
Ссылки какие должны быть, для скачивания webClient.DownloadFile и webClient.DownloadFileAsync Не...

Цикличная загрузка файлов через webclient
Есть у меня интересный код обновы,где всё что надо обновить качается в цикле. Загрузка идёт по...

22
0 / 0 / 0
Регистрация: 26.05.2018
Сообщений: 28
10.06.2018, 17:10 21
Author24 — интернет-сервис помощи студентам
EvilFromHell, извините что поднял такую старинную тему, но вот в начале этой темы вы дали рабочий код, все отлично, юзаю его на .net 4.7.1, да вот к сожалению progressbar не обновляется правильно, он резко с 0 до 100, и в логах подобное пишет Сделал запись в лог, вот что видит лог. В чем проблема? Файлы качаются хорошо, а прогрессбар плохо обновляется. Т.е даже смысла нет от него, тоже самое я могу сделать тупа Progressbar.value = 100;

Код
2018-06-10 16:56:40,807 DEBUG Downloaded: 0 
2018-06-10 16:56:40,820 DEBUG Downloaded: 0 
2018-06-10 16:56:40,862 DEBUG Downloaded: 0 
2018-06-10 16:56:40,876 DEBUG Downloaded: 0 
2018-06-10 16:56:40,915 DEBUG Downloaded: 0 
2018-06-10 16:56:40,927 DEBUG Downloaded: 0 
2018-06-10 16:56:40,940 DEBUG Downloaded: 0 
2018-06-10 16:56:40,981 DEBUG Downloaded: 0 
2018-06-10 16:56:41,006 DEBUG Downloaded: 0 
2018-06-10 16:56:41,025 DEBUG Downloaded: 0 
2018-06-10 16:56:41,042 DEBUG Downloaded: 0 
2018-06-10 16:56:41,088 DEBUG Downloaded: 0 
2018-06-10 16:56:41,103 DEBUG Downloaded: 0 
2018-06-10 16:56:41,133 DEBUG Downloaded: 0 
2018-06-10 16:56:41,146 DEBUG Downloaded: 0 
2018-06-10 16:56:41,178 DEBUG Downloaded: 0 
2018-06-10 16:56:41,220 DEBUG Downloaded: 0 
2018-06-10 16:56:41,242 DEBUG Downloaded: 0 
2018-06-10 16:56:41,259 DEBUG Downloaded: 0 
2018-06-10 16:56:41,273 DEBUG Downloaded: 0 
2018-06-10 16:56:41,286 DEBUG Downloaded: 0 
2018-06-10 16:56:41,324 DEBUG Downloaded: 0 
2018-06-10 16:56:41,360 DEBUG Downloaded: 0 
2018-06-10 16:56:41,373 DEBUG Downloaded: 100
0
Эксперт .NET
6511 / 4087 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
10.06.2018, 17:14 22
MairwunNx, Скорее всего сервер, с которого вы качаете не отправляет необходимые данные для корректной работы.
0
0 / 0 / 0
Регистрация: 26.05.2018
Сообщений: 28
10.06.2018, 17:19 23
Someone007, я качаю файл по прямой ссылке с гугл диска.
0
10.06.2018, 17:19
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2018, 17:19
Помогаю со студенческими работами здесь

Загрузка файлов через WebClient с отображением процентов
Здравствуйте, не очень понимаю, как сделать вывод процентов загрузки. Хочу сделать ProgressBar на...

Загрузка файлов с другого компьютера через WebClient
Здравствуйте, форумчане, помогите решить проблему. Есть функция, которая загружает файл по нажатию...

WebClient.DownloadFileAsync и WebClient.DownloadFile
Если правильно понимаю, то WebClient.DownloadFileAsync и WebClient.DownloadFile это 2 разных...

Запустить через один sh несколько sh по очереди
Помогите разобраться каким образом используя один sh запускать через него несколько sh по очереди


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru