![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 10.01.2014
Сообщений: 6
|
![]()
Доброго времени суток пытаюсь сделать прогресбар для функции подскажите пожалуйста где ошибся:
Код:
Последний раз редактировалось Antony22; 16.01.2014 в 16:22. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Если я правильно понимаю у тебя в Thread идет анонимная функция, где нет цикла.
Она отрабатывает один раз progressBar1.Invoke и тред завершается. Думаю тебе нужно в треад запулить сам цикл, и в нем вызывать прогрессбарное отрисовывание.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 10.01.2014
Сообщений: 6
|
![]()
Да было бы неплохо вот только если можно примерчик пожалуйста а я просто смутно представляю как это сделать.
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Увы я с Шарпом не дружу настолько.
Основные принципы знаю, а примеры из MSDN черпаю.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Я верно понимаю, что у вас WPF или Silverlight приложение?
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#6 | |
Регистрация: 10.01.2014
Сообщений: 6
|
![]() Цитата:
Я пытался и сейчас пытаюсь найти на MSDN подходящий пример но пока безуспешно. Возможно просто ищу плохо или не понимаю до конца. Верно у меня WPF приложение. Последний раз редактировалось Antony22; 17.01.2014 в 09:30. |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
1) В отдельный поток следует вынести процесс поиска файлов и заполнения списка "files" (иначе UI не будет ни на что реагировать в процессе поиска, в т.ч. не будет отображать прогресс на progressbar'е). Кстати, проще использовать "Directory.EnumerateFiles(path, "*.xml")"
2) У прогрессбара свойства "Max" и "Value" забиндить на соответствующие свойства, которые вы создадите в вашем классе. Для обновления прогрессбара достаточно будет сгенерировать событие NotifyPropertyChanged с указанием имени свойства "Value" 3) Все это изначально не имеет ни малейшего смысла, т.к. вся долгая работа по поиску файлов выполняется при вызове "dir.GetFiles()", работу которого по прогрессбару не отследить. Все остальное (в т.ч. цикл, в к-ром вы перебираете найденные файлы) выполняется за миллисекунды => прогрессбар никто и увидеть не сумеет P.S. да и прогрессбар у вас всегда будет показывать 100% из-за того, что вместо "int max = files.Count;" нужно было использовать "dir.GetFiles().Length". Хотя согласно п.3 ничего использовать и вовсе не надо было
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#8 |
Регистрация: 10.01.2014
Сообщений: 6
|
![]()
Luuzuk, большое вам спасибо за доходчивое объяснение попробую переписать функцию согласно вашим советам.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, в чем ошибка? | St@ter | Помощь студентам | 3 | 29.09.2013 15:02 |
Подскажите, в чем ошибка. | V888 | Общие вопросы C/C++ | 1 | 19.12.2009 12:44 |
Пожалуйста, подскажите в чем у меня ошибка? | wepoTWR | Помощь студентам | 8 | 09.12.2009 22:34 |
Подскажите, в чем ошибка? | Cannibal | Помощь студентам | 1 | 23.11.2008 12:50 |
Подскажите пожалуйста чем удобнее воспользоваться для поиска нужного значения | Ivo4ka | Microsoft Office Excel | 9 | 01.10.2007 20:17 |