![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приоритет потока и прочая мура [Delphi, Windows]
Kozz © (2005-09-09 16:44:00)В потоке есть сегмент (см. пример DemoThread)
while <...> do
begin
end;
чтобы это "кольцо функционировало нормально, там присутствут Sleep
это обязательно?
а как же Applet.ProcessMessages???
Kozz (2005-09-10 17:40:00) [1]понятно
ECM (2005-09-09 17:20:00) [2]Смотря, что понимать под "функционировало нормально" (с)...:)
там присутствут Sleep
это обязательно?
Чтобы поток не нагружал процессор на 100% в цикле обязательно должна быть одна из функций позволяющих передать управление другим потокам ("отпустить" процессор) Sleep, WaitXXX и т.д. (подробнее см. MSDN)
а как же Applet.ProcessMessages???
А причем здесь Applet.ProcessMessages? Он занимается обработкой оконных сообщений и применяется обычно в главном потоке программы при длительных вычислениях, чтобы не "замораживать" графический интерфейс на время расчета.
KOL.PAS:
procedure ProcessMessages;
{* |<#appbutton>
Processes pending messages during long cycle of calculation,
allowing to window to be repainted if needed and to respond to other
messages. But if there are no such messages, your application can be
stopped until such one appear in messages queue. To prevent such
situation, use method ProcessPendingMessages instead. }