![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Белая форма" [D7, XP]
mefodiy © (2009-04-16 15:15:00)Использую MySQL и ADO. Если какой-либо процесс сильно загружает процессор и продолжается относительно долго (десятки секунд), то иногда форма из которой был запущен процесс вся заливается белым цветом. Так продолжается до момента окончания процесса.
В принципе, это не мешает работе программы, но, как говорится, "хоть и мелочь , но неприятно".
Может кто знает, почему это происходит, и как этого избежать?
Спасибо.
sniknik (2009-04-16 17:03:00) [1]хм. чтобы UpdateBatch отрабатывал десятки секунд нужно наредактировать пару миллионов записей... очевидно это не руками сделано. а раз так то лучше вынести логику на сервер.
Сергей М. (2009-04-16 16:47:00) [2]
> как лечить?
Либо [3] либо вынос блокирующей логики в доп.кодовый поток
mefodiy (2009-04-16 16:37:00) [3]Понятно, а как лечить?
Сергей М. (2009-04-16 16:21:00) [4]
> ADOQuery.UpdateBatch
Это не "запуск процесса", а вызов метода объекта.
При исполнении этого метода основной поток процесса твоего приложения, отвечающий в т.ч. и за интерактивное взаимодействие с юзером (перерисовка окон, реакция на события ввода), занят пакетным обновлением и не реагирует на "сигналы" ОС о необходимости перересовать такое-то окно или отреагировать на клавиатурно-мышиные и иные события.
Оттого и окно белое.
mefodiy (2009-04-16 16:12:00) [5]<какой процесс? запрос?>
В частности, когда корректирую таблицу в гриде и затем выполняю команду
ADOQuery.UpdateBatch(arAll);
clickmaker (2009-04-16 15:23:00) [6]> Если какой-либо процесс сильно загружает процессор и продолжается
> относительно долго (десятки секунд), то иногда форма из
> которой был запущен процесс вся заливается белы
какой процесс? запрос?
sniknik (2009-04-16 15:22:00) [7]перейти на асинхронные методы работы в ADO. хотя ... что это там еще за "процесс" вопрос, может все можно на сервере сделать.
Сергей М. (2009-04-16 15:20:00) [8]
> форма из которой был запущен процесс вся заливается белым
> цветом
А мышью твою форму можно таскать за уши по десктопу в тот момент когда форма "белая" и идет "процесс" ?
Медвежонок Пятачок (2009-04-16 15:18:00) [9]от того, что форма не обрабатывает сообщения виндоуз.