Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delay-Funktion.. - oder wie man die Prozedur kurz anhält (https://www.delphipraxis.net/54348-delay-funktion-oder-wie-man-die-prozedur-kurz-anhaelt.html)

BackOrifice 2. Okt 2005 16:04


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:
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 :cyclops:

Zacherl 2. Okt 2005 16:05

Re: Delay-Funktion.. - oder wie man die Prozedur kurz anhält
 
Machs doch einfach mit einem Timer.

Florian

turboPASCAL 2. Okt 2005 16:18

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:

Nur gibt es das Problem mit den warten von 5ms.
Delphi-Quellcode:
delay(5000);
Du meinst wohl 5 Sekunden und nicht 5 Millisekunden.

BackOrifice 2. Okt 2005 16:23

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