3 / 3 / 1
Регистрация: 17.12.2012
Сообщений: 90
|
||||||
1 | ||||||
Обновление значения элемента Progressbar во время выполнения программы20.01.2013, 21:47. Показов 4850. Ответов 11
Метки нет (Все метки)
На форме есть:
1.кнопка, запускающая загрузку файлов из Интернета с использованием webClient 2. ProgressBar, который отображает погресс загрузки (количество загружаемых файлов всегда одинаково, поэтому каждый раз к значению прогрессбара добавляется одна и та же величина) вот код:
Можно как-то это исправить?
0
|
20.01.2013, 21:47 | |
Ответы с готовыми решениями:
11
Изменение значения Label во время выполнения программы Обновление ProgressBar во время длительной операции Обновление ProgressBar-a во время загрузки SQLite DB при включении приложения ProgressBar не показывает прогресс выполнения программы |
119 / 119 / 25
Регистрация: 03.03.2010
Сообщений: 436
|
||||||
21.01.2013, 15:15 | 3 | |||||
Shadow91, либо потоки,как сказано выше, либо таймер.
Пример таймера:
0
|
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,706
|
|
21.01.2013, 15:32 | 4 |
А таймер тут причем?
0
|
119 / 119 / 25
Регистрация: 03.03.2010
Сообщений: 436
|
|
21.01.2013, 15:34 | 5 |
Как вариант чтобы прогрессбар обновлялся, а не просто зависал. Костыль так сказать)
0
|
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,706
|
|
21.01.2013, 15:37 | 6 |
Но выполняться то все равно будет в одном потоке, а значит виснуть. Ед. решение - вынести в другой поток.
Либо через System.Threading, либо выполнять асинхронно через делегаты.
1
|
119 / 119 / 25
Регистрация: 03.03.2010
Сообщений: 436
|
|
21.01.2013, 15:41 | 7 |
Точно,не подумал...Виноват)
0
|
3 / 3 / 1
Регистрация: 17.12.2012
Сообщений: 90
|
|
22.01.2013, 23:23 [ТС] | 8 |
значит так: создал 5 отдельных потоков для загрузки, теперь во время ее форма не виснет. Но! Когда попробовал в каждом потоке прописать, чтобы значение прогрессбара обновлялось после каждого загруженного файла, получил ошибку: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'progressBar1' не из того потока, в котором он был создан.
Как теперь быть?? И да, IamRain, можно поподробней с:
0
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
22.01.2013, 23:32 | 9 |
Либо через милый BackGroundWarker
0
|
3 / 3 / 1
Регистрация: 17.12.2012
Сообщений: 90
|
|||||||
22.01.2013, 23:47 [ТС] | 10 | ||||||
Ребята, это все хорошо, но вы же учтите, що вас нуб слушает и мало что понимает. можно немножко вдаться в детали???
Добавлено через 6 минут Noob.net, спасибо, это как раз то, что мне подойдет!
0
|
37 / 37 / 6
Регистрация: 06.01.2013
Сообщений: 195
|
||||||
23.01.2013, 03:29 | 11 | |||||
Приветствую! я так понял ничего что бы ты понял тебе не подсказали=) ну тогда вот держи =) Правда код от сканера портов, но смысл работы с потоком такой же =)
Кликните здесь для просмотра всего текста
0
|
nio
|
23.01.2013, 13:16
Обновление значения элемента Progressbar во время выполнения программы
#12
|
0
|
23.01.2013, 13:16 | |
Обновление поля, время выполнения Обновление формы во время выполнения SQL запроса Как через ProgressBar отобразить время работы программы? Не меняется "внешность формы" (label, progressbar) во время выполнения backgroundWorker Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |