Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1237886380
AlexDan
2009-03-24 12:19
2009.05.31
Подключение Microsoft SQL Server 2005


2-1239771932
an-petroff
2009-04-15 09:05
2009.05.31
Выход SOAP из приложения delphi


2-1240069481
Coming
2009-04-18 19:44
2009.05.31
Преобразование строк


11-1201430310
=BuckLr=
2008-01-27 13:38
2009.05.31
Скорректировать описание RE_LineSpacing и RE_SpacingRule


2-1239876903
Axwel
2009-04-16 14:15
2009.05.31
потоки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский