![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Реализация функции Delay 5Delphi , Синтаксис , Дата и ВремяРеализация функции Delay 5
Оформил: DeeCo procedure Delay(Milliseconds: Integer); {by Hagen Reddmann} var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + DWord(Milliseconds); while (Milliseconds > 0) and (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; Milliseconds := Tick - GetTickcount; end; finally CloseHandle(Event); end; end; Функция Вот шаг за шагом, как функция работает:
Функция спроектирована для эффективности и не блокирует выполнение программы на протяженииextended периода времени. Вместо того, чтобы заниматься busy-waiting (т.е., постоянно проверять время задержки), она использует функцию Windows API ( Вот некоторые альтернативные решения:
В целом, функция хорошо спроектирована и обеспечивает хорошую баланс между эффективностью и точностью. В статье описана реализация функции Delay 5 на языке Delphi, которая позволяет задерживать выполнение кода на указанный промежуток времени. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Дата и Время ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |