Einzelnen Beitrag anzeigen

Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#1

Delay-Funktion.. - oder wie man die Prozedur kurz anhält

  Alt 2. Okt 2005, 16:04
Hallo!
Ich flieg morgen früh in den Urlaub und habe mir nun ein kleines Tool geschrieben, welches die 24-h Trennung überbrückt. Bzw es soll alle 5ms prüfen, ob die Verbindung noch da ist; und wenn nicht, stellt sie gleich wieder eine her.

So weit so gut; Nur gibt es das Problem mit den warten von 5ms. Ich habe mir im Inet die beiden Prozeduren rausgesucht:

Delphi-Quellcode:
procedure Tfrm_main.ProcessMessages;
var
  Msg: TMsg;
begin
  while PeekMessage(Msg, GetCurrentProcess, 0, 0, PM_REMOVE) do begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;

procedure Tfrm_main.Delay(const WaitTime: DWord);
var
  Start: DWord;
begin
  Start := GetTickCount;
  repeat
    ProcessMessages;
  until (GetTickCount - Start) > WaitTime;
end;
Zusammen mit:
Delphi-Quellcode:
procedure Tfrm_main.leerlauf;
begin
  Repeat
    delay(5000);
    if verbindung_check = false then set_verbindung(true);
  until Status = false
end;
Das Problem ist jetzt, dass die CPU-Auslast bei 100 ist, sobald das Programm aktiv wird.
Gibt es eine andere Methode, die Prozedur leerlauf für eine gewisse Zeit (kann auch bei 1 sec liegen) anzuhalten?


Danke im voraus
Ps: Bitte schnelle Request, morgen bin ich schon weg
Henning
  Mit Zitat antworten Zitat