Delay-Funktion.. - oder wie man die Prozedur kurz anhält
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:
Zusammen mit:
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;
Delphi-Quellcode:
Das Problem ist jetzt, dass die CPU-Auslast bei 100 ist, sobald das Programm aktiv wird.
procedure Tfrm_main.leerlauf;
begin Repeat delay(5000); if verbindung_check = false then set_verbindung(true); until Status = false end; 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 :cyclops: |
Re: Delay-Funktion.. - oder wie man die Prozedur kurz anhält
Machs doch einfach mit einem Timer.
Florian |
Re: Delay-Funktion.. - oder wie man die Prozedur kurz anhält
Eine Resourceschonendere Variante von Delay
Es könnte aber auch an dem verbindungscheck liegen der die CPU Auslastung hoch treibt. Wie machst du das denn ? Zitat:
Delphi-Quellcode:
Du meinst wohl 5 Sekunden und nicht 5 Millisekunden.
delay(5000);
|
Re: Delay-Funktion.. - oder wie man die Prozedur kurz anhält
Wusste nicht, dass es so eine Komponente gibt. Funtzt - danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz