![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программа замедляется через несколько секунд... [D6, WinXP]
Wild Sam © (2003-09-15 16:35:00)
Всем привет. Пишу скринсэйвер, но под одной из версий XP столкнулся с такой проблемой. Иногда программа (которая работает в цикле) через несколько секунд после запуска замедляет свою работу, иногда сразу начинает тормозить, иногда работает нормально. Кто сталкивался с чем-то подобным, хоть с какого края надо начинать искать ошибку???
Скринсэйвер писал на основе распростаненной статьи "Профессиональное создание скринсэйвера на дельфи", ну, та, где размер кода получается 20 кб...
andre (2003-09-15 23:01:00) [1]
Попробуй сделать через таймер, а не через WM_PAINT. Лично у меня WM_PAINT загружает проц капитально, а если рисовать на дочернем окне (через WM_PAINT опять-таки), то всё работает как надо. В чём трабла-сам не пойму.
Songoku (2003-09-15 17:21:00) [2]
Поробуй синхронизировать эти потоки!!!
Wild Sam (2003-09-15 17:09:00) [3]
У меня цикл организован так. Создан поток, который главному окну периодически посылает сообщение WM_Paint, а на это сообщение повешена процедура прорисовки.
ZEE (2003-09-15 16:48:00) [4]
>Wild Sam (15.09.03 16:35)
>Иногда программа (которая работает в цикле)
хм... в цикле? а может все же SetTimer + WM_TIMER
а замедления - да замечал такое, причем не только в своих сейверах, но я предполагал что это винда что-то лопатит поэтому и тормоза...
Songoku (2003-09-15 16:46:00) [5]
Попробуй создать отдейный поток (CreateThread). И запихнуть туда функцию каторая рисует - тоесть создай там отдельный цыкл. И увиличь у этого потока приоритет.
p.s. Сильно не увиличивай приоритет это может привисти к фатальной ситуации!!!