Главная страница
    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-1237966822
Немо
2009-03-25 10:40
2009.05.31
Как воевал - с_порно, как надо?


15-1238445004
Юрий
2009-03-31 00:30
2009.05.31
С днем рождения ! 31 марта 2009 вторник


11-1201248747
Bytes
2008-01-25 11:12
2009.05.31
не могу запустить проект


11-1201031180
AndreyUT
2008-01-22 22:46
2009.05.31
Определить когда курсор покинул ссылку в richedit


15-1238071458
@!!ex
2009-03-26 15:44
2009.05.31
KDE 4 под Windows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский