Thema: Delphi Timer in TThread

Einzelnen Beitrag anzeigen

luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

Timer in TThread

  Alt 26. Sep 2012, 02:13
Delphi-Version: XE2
Hi!

Ich habe einen TThread, der mit einem blockierendem Socket auf Daten wartet:
Delphi-Quellcode:
procedure MeinThread.Execute;
var i: integer;
begin
  repeat
    i := recv(sock, ...); //block
    if i > 0 then
    begin
      ...
    end;
  until i <= 0;
end;
Jetzt möchte ich z.B. alle 5 Sekunden etwas durch den Socket senden. Ich habe gelesen, dass es mit SetTimer gehen könnte, aber dafür wird eine Nachrichtenschleife benötigt und diese kann ja nicht immer ablaufen, da der Aufruf von recv blockiert, wenn keine Daten empfangen werden.
Schleife + Sleep funktioniert deshalb ja auch nicht...

Was gibt es sonst noch für Möglichkeiten, ohne einen weiteren Thread zu starten bzw. auf nicht-blockierende Sockets umzustellen?

Geändert von luke2 (26. Sep 2012 um 02:16 Uhr)
  Mit Zitat antworten Zitat