Der Hauptaufwand liegt darin, dass durch einen zweiten Thread (der nur für das Empfangen von Daten zuständig ist) bedingt wird, die Kommunikation mit dem Hauptthread threadsicher zu gestalten. Der erforderliche Aufwand hängt davon ab, wie komplex die notwendige Kommunikation zwischen dem Hauptthread und dem Lesethread ist.
Sehr kompliziert muss es nicht sein. Beim erfolgreichen Login wird ein Client-Object erzeugt, der neben der Referenz auf den IdContext des Sockets noch eine zusätzliche Variable für den neuen Thread enthält. Dieser Objekt wird wiederrum an IdContext des Sockets angehängt. Dann erstelle ich den Lesethread und lasse ihr auf die IdContext-Referenz des Hauptthreads zugreifen. Beim Freigeben des Hauptthreads prüfe ich, ob Lesethread existiert und beende ihn. Wäre das so threadsicher oder habe ich was vergessen?
Muss ich in beiden Threads aud IOHandler zugreifen oder kann ich irgendwie direkt auf Lese- bzw. Schreibstrem zugreifen?