Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Реализация функции Delay 4

Delphi , Синтаксис , Дата и Время

Реализация функции Delay 4

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch


 // 4. Combined Delay 

{ 
  Including the Sleep in the loop prevents the app from hogging 
  100% of the CPU for doing practically nothing but running around the loop. 
}

 procedure PauseFunc(delay: DWORD);
 var
   lTicks: DWORD;
 begin
   lTicks := GetTickCount + delay;
   repeat
     Sleep(100);
     Application.ProcessMessages;
   until (lTicks <= GetTickCount) or Application.Terminated;
 end;

Here's the translation of the text into Russian:

Процедура PauseFunc - это реализация функции задержки выполнения в Delphi, также известной как "задержка" или "пауза". Эта функция использует вызов API GetTickCount, чтобы получить текущий системный счётчик tick, а затем enters цикл, где она спит на 100 миллисекунд (используя процедуру Sleep) и обрабатывает любые pending приложения сообщения (используя Application.ProcessMessages). Цикл продолжается до тех пор, пока не будет достигнута заданная задержка или приложение будет остановлено.

Вот разбивка того, что код делает:

  1. lTicks := GetTickCount + delay;: эта строка устанавливает локальную переменную lTicks в текущий системный счётчик tick плюс заданная задержка (в миллисекундах). Это значение представляет собой целевое время, когда функция должна завершить свое выполнение.
  2. Цикл repeat: этот цикл будет продолжаться до тех пор, пока не будет достигнута условие в стatement until или приложение будет остановлено.

Внутри цикла:

  1. Sleep(100);: эта строка вызывает программу на паузу выполнения на 100 миллисекунд (0,1 секунды). Это позволяет другим задачам выполняться и помогает предотвратить программу от потребления избыточных ресурсов CPU.
  2. Application.ProcessMessages;: эта строка обрабатывает любые pending приложения сообщения, такие как уведомления о событиях или триггеры таймера.

Цикл будет продолжаться до тех пор, пока не будет достигнута одна из следующих условий:

  • Текущий системный счётчик tick (GetTickCount) больше или равно целевому времени (lTicks), что указывает на то, что заданная задержка была достигнута.
  • Application.Terminated истинно, что означает, что приложение было остановлено внешне (например, закрытие окна).

В целом, эта реализация функции задержки выполнения помогает предотвратить зацикливание CPU и позволяет другим задачам выполняться, пока не будет достигнута конкретное количество времени.

В статье описывается реализация функции Delay 4, которая предотвращает зацикливание приложения на выполнении пустого цикла с помощью использования функции Sleep и проверки состояния приложения.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Дата и Время ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 01:34:36/0.0068771839141846/2