Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: wait prozedur bewirkt vollständige cpu auslastung

  Alt 23. Okt 2006, 20:43
Deine letzte Funktion bringt bei mir in einer Consolenanwendung auch 100% CPU Last.

Die folgende Funktion bringt bei eine CPU Last von 3-4%.

Delphi-Quellcode:

procedure Delay(Milliseconds: Integer);
{by Hagen Redmann}
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;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat