Аналог процедуры Delay в Delphi

08 Сентября 2017 NB
Печать

Аналог процедуры Delay в Delphi

(Delay - задержка в миллисекундах)

не нагружает процессор компьютера

 

 

Функция задержки выполнения работы алгоритма программы без нагрузки процессора:

procedure Delay(Milliseconds: Integer);
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;