Страница: 1 |
Страница: 1 |
Вопрос: Зависание ProgressBar'а
Добавлено: 07.04.08 20:48
Автор вопроса: Arseny | ICQ: 298826769
Прога конвертит большие (до 2млн записей) базы DBASE в формат ACCESS. загрузка проца - около 70-80 процентов. конвертит довольно шустро, но проблема вот в чем: дабы юзеру было ясно, что происходит и когда это кончится, добавил прогрессбар. сколько-то времени сначала он отображает ход процесса, потом - виснет. то же самое происходит и с лэйблом, отображающим кол-во импортированных записей. Хотя импорт продолжается. Как заставить прогрессбар корректно отображать данные? Refresh - будет тормозить работу, поэтому просьба не предлагать.
P.S. AutoRedraw - выставлен.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #1
Добавлено: 07.04.08 22:18
Там, хде цикл, после обновления значения прогресс-бара вставить DoEvents.
Номер ответа: 2
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 07.04.08 22:49
поток расчета уходит в цикл, не вызывая системные функции по отрисовке данных. вообще правильным является создание потока, который будет делать конвертирование, а первичный поток процесса оставить на демонстрацию прогресса. но так как это васик - с поточностью будут проблемы. Так что DoEvents, хотя это тож немало тормозит процесс расчета. Но особого выбора нет
Номер ответа: 3
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #3
Добавлено: 07.04.08 23:07
В общем-то я так и сделал, хотя надеялся обойтись без DoEvents... Все равно, всем спасибо.