Главная страница
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.01 c
2-1240060370
Student
2009-04-18 17:12
2009.05.31
Нет записи в член класса (вопрос по классическому ООП)


3-1221766047
Девушка
2008-09-18 23:27
2009.05.31
Fib+ ClientDataSet + MasterDetail = Key Violation


15-1238142263
Cyrax
2009-03-27 11:24
2009.05.31
Челночные автобусы в Москве в р-не станций Молодёжная/Кунцевская


2-1239737644
Новичок
2009-04-14 23:34
2009.05.31
Фильтрация по поисковому полю


15-1234763467
Liones
2009-02-16 08:51
2009.05.31
MySQL в Delphi