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