Einzelnen Beitrag anzeigen

Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#18

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 14. Feb 2007, 12:37
Für alle die das selbe Problem wie ich haben:
Mit den TimeOut Funktionen der einzelnen Kompos kommt man nicht weiter.
Aber es geht doch:

Ich habe mir einen Thread angelegt, der das Senden übernimmt.
Nun habe ich vor dem Aufrufen des Threads GetTickCount in eine Variable gespeichert.
Und nun in einer Schleife testen ob die Zeit überschritten ist
Delphi-Quellcode:
Tick := GetTickCount;
While (not thread.Terminated) do begin
    Application.ProcessMessages;
    If (GetTickCount-Tick > TimeOut) AND (not thread.state) then break;
    end;
Nochmal zur Erläuterung:
thread.state ist ein Boolean und wird nach dem Verbinden (Client.Connect im Thread.Execute-Teil) auf true gesetzt.
Das habe ich gemacht, das es nicht abbricht wenn es sich schon verbunden hat. Es kann ja sein das das senden etwas länger dauert.

halinchen

//EDIT: Thread.FreeOnTerminate muss True sein, sonst gibt es den Speicher nicht mehr frei!!!
  Mit Zitat antworten Zitat