![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.11.2008
Сообщений: 7
|
![]()
Люди,хелп.Недавно написал тестовую программу,но мне не понятно поведение таймера.
Цель-есть три прогрессбара,они выполняются последовательно один за другим.Мин значение =0,мах=100. Инкрементирование значения прогрессбара выполняется в цикле от 1 до 100,с ожиданием методом Thread.Sleep() Т.к. все выполняется в одном потоке,то после каждого цикла выполняется refresh() формы для прорисовки. Вопрос-как раз касается метода Thread.Sleep(). Почему-то,если значения таймеров поставить около 30 мс, то в то время,когда первый прогресс бар еще не заполнился,уже идет заполнение второго и т.д., после завершения работы всех (трех) прогрессбаров они дорабатывают до 100 %. Я думаю,чтобы понять проблему нужно запустить код.Ниже прилагаю код.Формочку нарисуйте сами=) П.С. Пожалуйста,не пишите сообщения типа "это говонокод" и т.п. Интересует почему некорректно работает именно этот пример. Код:
Последний раз редактировалось Serge_Bliznykov; 05.03.2012 в 15:40. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
абсолютно ничего не понимаю в вашем примере (как, впрочем, и в программировании под WinForms в C#),
но попробуйте в каждом цикле вставить строчку Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.11.2008
Сообщений: 7
|
![]()
Я боюсь что данный Sleep создает новый поток и лог не поможет..Тут по c# гуру нет?)
|
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
![]()
когда вы увеличиваете value это не значит что сразу же на интерфейсе полоса увеличивается.скорей всего в этом компоненте это происходит отдельном потоке.
в итоге у вас получается что значение value максимальное а прогрес бар не успел заполниться. |
![]() |
![]() |
![]() |
#6 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
В циклах пиши так
Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
![]()
ничего не изменилось.как не работало по человечески так и не работает.
а вот относительно потоков,абсолютно согласен.проще запустить отдельный поток в котором изменять позицию прогресс бара,в конце потока сделать слип(для того чтоб прогресбар заполнился до конца),и так далее Последний раз редактировалось sergei64_89; 06.03.2012 в 15:24. |
![]() |
![]() |
![]() |
#8 | |
Регистрация: 24.11.2008
Сообщений: 7
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 | ||
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]() Цитата:
Цитата:
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
||
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
странное поведение COM метода | oldDed | C# (си шарп) | 2 | 13.09.2011 17:17 |
Странное поведение realloc | eraserhp | Общие вопросы C/C++ | 7 | 17.05.2010 09:52 |
Странное поведение gets | alex_alpha | Общие вопросы C/C++ | 3 | 27.03.2010 18:21 |
Странное поведение процедуры | Sergey1974 | Общие вопросы Delphi | 2 | 11.12.2009 21:41 |
Странное поведение DLL | Yurk@ | Компоненты Delphi | 4 | 01.02.2009 01:23 |