![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Application.ProcessMessages [D7, XP]
Serg1981 © (2006-02-04 17:48:00)Здравствуйте! Заметил одну вещь: при использовании процедуры Application.ProcessMessages цикл выполняется медленнее, чем без использования такой процедуры. Можно-ли заменить эту процедуру чем-то более "легким", чтобы не тормозить общий процесс ?
Спасибо!
sniknik (2006-02-04 19:38:00) [1]> Это наиболее легкая процедура, требует менее 300 наносекунд на вызов.
сама по себе да, а последствия? если к примеру в цикле прогрессбар устанавливается, ход "расчетов" показывает, тогда этот вызов повлечет за собой перерисовку и прочие "событийные" вещи... а это уже не так "легко" как сам вызов ProcessMessages.
но это вобщето уже офтопик, никакой конкретики по циклу нет, обсуждается исключительно только сама процедура/вызов... так что сорри. ;)
Anatoly Podgoretsky (2006-02-04 19:12:00) [2]Serg1981 © (04.02.06 17:48)
Это наиболее легкая процедура, требует менее 300 наносекунд на вызов.
sniknik (2006-02-04 18:21:00) [3]да не чуть, а сильноможно ускорить вызывая раз в тысячу проходов. ;) (в тысячу раз если одна итерация цикла выполняется сопоставимо по времени с вызовом ProcessMessages)
а еще можно обработку в отдельном потоке делать... тогда ProcessMessages вообще не понадобится.
Sergey Masloff (2006-02-04 18:01:00) [4]Что значит более легким? Или твое приложение выполняет обработку поступающих сообщений во время цикла или нет. Хочешь быстрее - замораживается UI хочешь интерактивности - терпи потери скорости. Ну чутьсэкономить можно вызывая обработку сообщений не в каждом цикле а например в каждом сотом или тысячном...