Hallo mal wieder
ich habe diesmal das Problem, dass ein erzeugter Thread, in dem einfach ein Port lauscht, ob TCP-Verbindungen aufgebaut werden, beim Beenden die ganze Anwendung einfrieren läßt. Der Aufruf passiert so:
Wenn ich dann LThread.Abort() ausführe, friert die Anwendung komplett ein. Es wird keine Exception geworfen und nix.
Vor dem Abort() wird "Client" natürlich beendet (Client.Close()). Bis dahin geht auch alles. Nur das Beenden des Threads LThread macht halt Probleme...
ich habe diesmal das Problem, dass ein erzeugter Thread, in dem einfach ein Port lauscht, ob TCP-Verbindungen aufgebaut werden, beim Beenden die ganze Anwendung einfrieren läßt. Der Aufruf passiert so:
Quellcode
- ...
- LThread = New System.Threading.Thread(AddressOf ListenThread)
- LThread.Start()
- ...
- Public Sub ListenThread()
- While True
- Client = Listener.AcceptTcpClient
- Dim NewCon As New Connection
- NewCon.NetworkStream = Client.GetStream
- NewCon.NetworkStreamReader = New StreamReader(NewCon.NetworkStream)
- NewCon.NetworkStreamWriter = New StreamWriter(NewCon.NetworkStream)
- NewCon.NickName = ""
- LogEntry("Client connected")
- Dim t As New System.Threading.Thread(AddressOf ListenToConnection)
- t.Start(NewCon)
- End While
- End Sub
Wenn ich dann LThread.Abort() ausführe, friert die Anwendung komplett ein. Es wird keine Exception geworfen und nix.
Vor dem Abort() wird "Client" natürlich beendet (Client.Close()). Bis dahin geht auch alles. Nur das Beenden des Threads LThread macht halt Probleme...