Hi Hagen,
wie Du gerade richtig bemerkt hast, verhält sich das ganze bei den Idys etwas anders.
Dort gibt es kein OnReceiveData, somit fällt Deine zuerst Geschilderte Vorgehensweise flach.
Deine Zweite Antwort speziell zu den Indys kann ich nicht ganz nallvollziehen was Du jetzt genau vorschlägst.
Wenn Ich Dich richtig verstanden habe, schlägst Du vor :
IM Thread mit ReadLn(INFINITE) oder einem recht hohen Wert auf Daten zu warten.
Wenn ich den Thread von aussen beenden möchte soll ich einfach die Verbindung des IdTcpClient trennen, so das bei ReadLn eine eine
Exception ausgelöst wird.
Und bei entsprechender
Exception den Thread dann beeenden ?
Mein Problem bzw. meine Anforderung an den Thread ist, das ich Ihn von aussen beenden kann, ich aber auch mitbekomme wenn er sich selber beendet wenn die Connection aus irgentwelchen Gründen unterbrochen wird(DSL 24 Std. Disconnect, Netzwerkkabel ziehen, Internetverbindung wird getrennt etc.)
Mein Thread hat nämlich noch eine Procedure "Cleanup" die Onterminate zugewiesen ist und in dieser wird ein Event ausgelöst das der Thread beendet wurde.
Auf diesen Event reagiere ich an anderer Stelle, erzeuge den Thread wieder neu falls das Inet noch da ist und es nur ein temporärer Fehler war, oder ich schmeisse ein Fehlermeldung raus.
Um zu erkennen ob die Connection vom Server getrennt wurde, schicke ich selber von Zeit zu Zeit ein "NOOP" zum Server, gibts ne
Exception weiß ich das die Connection weg ist.
Wäre Dir für ein kleines Code-Gerüst wie Du das machen würdest sehr dankbar, denn ich setze genauso wie Du an meine Software die Ansprüche das Sie nicht nur funktioniert, sondern das Sie zu effektiv und performance schonend wie möglich programmiert ist
Danke und Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.