Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.31;
Скачать: CL | DM;

Вниз

"Белая форма"   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1240226221
VMF
2009-04-20 15:17
2009.05.31
DLL в C++ для Delphi


2-1239721357
worldmen
2009-04-14 19:02
2009.05.31
Поиск в поле типа Memo


2-1240060637
wind
2009-04-18 17:17
2009.05.31
порядок компонентов


10-1158130464
GrBob
2006-09-13 10:54
2009.05.31
ITypeInfo и имя интерфейса-предка.


2-1240165745
daxter
2009-04-19 22:29
2009.05.31
Помогите с indy 9