Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 14.08.2011
Сообщений: 50

Скачивание файлов в отдельном потоке с использованием ProgressBar

22.02.2014, 10:01. Показов 2348. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, у меня есть код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        internal static string DownloadGame(string address)
        {
            string path = System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().GetName(false).CodeBase).LocalPath);
 
            string temp = ParseHash("minecraft");
            string[] s1 = temp.Split('\n');
            string[,] arr = new string[s1.Length, 2];
            for (int i = 0; i < s1.Length-1; i++)
            {
                string[] t = s1[i].Split(';');
                if (t.Length < 2) continue;
                arr[i, 0] = t[0];
                arr[i, 1] = t[1];
            }
 
 
            for (int i = 0; i < s1.Length - 1; i++)
            {
                string url = @address + "/files" + arr[i, 0];
                string correctString = arr[i, 0].Replace("/", "\\");
                string save = path + "\\sandzone_data" + correctString;
                CheckAndCreate(save);
                var webClient = new WebClient();
                webClient.DownloadFile(url, save);
            }
При его использовании программа намертво виснет пока качаются файлы. Нужно вынести это в отдельный поток и информировать пользователя сколько осталось файлов, ну и естественно нужно как то сделать ожидание завершения потока, с таким раньше не работал, подскажете что нибудь?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2014, 10:01
Ответы с готовыми решениями:

Скачивание файлов стало некорректно работать в отдельном потоке
В общем, был у меня код, который скачивал файлы по списку, переделал его для отдельного потока, стал качать все его файлы так, что внутри...

ProgressBar в отдельном потоке
Кинул на форму бутонку прогрессБар и тот элемент с не выговариваемым названием для осуществления операций в отдельном потоке, по задумке...

Работа ProgressBar в отдельном потоке
Привет. Подскажите, как заполнять и обновлять progressBar в отдельном потоке в процессе вычислений? У меня вычисления происходят в...

5
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
22.02.2014, 10:46
BackgroundWorker для начала сойдет. Пример вот тут:
http://msdn.microsoft.com/ru-r... s.95).aspx
0
Заблокирован
22.02.2014, 12:39
Привет!
Смотрите пример с многопоточностью.
Изменение ProgressBar через отдельный поток
0
Заблокирован
22.02.2014, 18:32
Можно использовать отдельный поток и метод Invoke
0
0 / 0 / 1
Регистрация: 14.08.2011
Сообщений: 50
22.02.2014, 22:48  [ТС]
У меня к вам вопрос, я использовал ваш пример, выходит так, что когда поток запущен и я закрываю программу, то вылазит ошибка, а если я при закрытии программы пишу для потока аборт, то если этого потока и не было то программа вообще на закрытие не реагирует, те остается работающей пока я не вызову в программе поток и не закрою ее. как проверить, работает поток или нет, чтобы выставить условие при закрытии программы?
0
Заблокирован
22.02.2014, 23:58
Попробуйте свойства потока типа ThreadState.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2014, 23:58
Помогаю со студенческими работами здесь

Не работает ProgressBar в отдельном потоке
Здравствуйте! Помогите с проблемой. Написал код распаковки архива в отдельном потоке с отслеживанием процесса через ProgressBar, но он...

Привязывание к вычислению ProgressBar в отдельном потоке
Добрый день. Привязываю ProgressBar к циклу алгоритма Краскала. Из потока обращаюсь к переменным, стараясь следить за их значением, и по...

Показывать ProgressBar вычислений, запущенных в отдельном потоке
На главной форме есть кнопка при нажатии создается новый поток: private void button1_Click(object sender, RoutedEventArgs e) { ...

Копирование содержимого DVD-диска с ProgressBar в отдельном потоке
В общем, пытаюсь написать программу, которая бы копировала содержимое DVD-диска в указанную папку на жестком диске. Застрял на этом: ...

Отобразить ход выполнения подключения к серверу в progressbar в отдельном потоке
При запуске главной формы обращаюсь к серверу для получения данных. Хочу сделать чтобы при запуске формы в течение времени обращения к...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru