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