Moin !
Ich habe da ein Problem und hoffe mal das mir jemand weiterhelfen kann.
Und zwar habe ich irgendwo (ich glaube hier im Forum) mal ne Procedur gefunden, die auf ein Flag wartet. Die schaut so:
Delphi-Quellcode:
procedure WaitForFlag(Flag : PBoolean ; TimeOutSeconds : integer = 10);
var EndTime : Extended;
begin
Flag^ := True;
EndTime := Now() + TimeOutSeconds * OneSecond;
while (Flag^ = True) and (Now() < EndTime) do
Application.ProcessMessages;
//if Flag^ then raise ETimeOut.Create;
end;
Das funktioniert auch alles prima. Nur die CPU Last steigt beim warten in ganz ungünstige Höhen. Teilweise bis 99% und dabei ist es auch fast egal, wie schnell der Rechner ist.
Frage also ... Hat jemand eine Procedure, die solange wartet bis ein Flag gesetzt ist? Andere Programmteile sollte natürlich im Hintergrund nicht geblockt werden.
Und ja ich brauche so eine Funktion, weil ich immer auf einen Bestimmten Zustand warten muss. Geht leider nicht anders.
Wäre für einen Tip Dankbar
Anbei noch ein kleines Demoprojekt was das Prob zeigt ...
Greetz Dominik