Hi,
ich habe ein Programm, welches zur Runtime einen, oder mehrere Threads erzeugt. In diesen Thread läuft ein
TCP-Client (TWSocket) der eine Verbindung zu einem
TCP-Server hält.
Wenn nun der
TCP-Server sich verabschiedet, schickt er noch ein "Disconnect" rüber, damit sich der Thread mit dem
TCP-Client abarbeiten und beenden kann, was er m.E. auch tut.
Allerdings habe ich folgendes Phänomen:
Wenn sie so ein Thread beendet hat, und ich klicke das Formular der Anwendung an, dann bekomme ich eine Zugriffsverletzung bei 0x00000000: Lesen von Adresse 0x00000000, bzw.
System
exception (code 0xc000041d) at 0x7702bda1.
Auch innerhalb der
IDE.
Wenn ich aber das Formular nicht anklicke, dann läuft das Programm weiter, erzeugt auch neue Thread, und verbindet sich auch per
TCP mit dem Server. Das kann ich x-mal machen, solange ich nicht das Formular der Mainform anklicke.
Woher könnte sowas kommen? Wie kann ich feststellen ob der Thread wirklich beendet ist? Ich weiß nicht wirklich wie ich zur Ursache des Problems komme.
PS: Oben steht die falsche Delphi-Version. Ist XE4, hab ich zu spät gesehen