Der Socket wird nach dem Beenden der Anwendung nicht geschlossen, wenn ein gestarteter Prozess geöffnet ist

Meine C # .net-Anwendung führt derzeit (unter anderem) Folgendes aus:

Erstellt einen Thread, der einen Socket an einem bestimmten Port öffnet und auf eine Anweisung wartet.Nachricht kommt herein, Socket-Thread liest die Nachricht und löst ein Ereignis aus.Ein Ereignishandler ruft die erforderlichen Funktionen zum Analysieren der Nachricht auf und führt die erforderlichen Aktionen aus, z. B. das Starten einer Anwendung.Die angegebene externe "Anwendung" wird asynchron gestartet.

Wenn meine Anwendung neu gestartet wird, die externe Anwendung jedoch nicht geschlossen wird, scheint der Socket nie zu schließen. Wenn ich dann versuche, die Kommunikation über diesen Port erneut zu starten, wird eine Fehlermeldung angezeigt. Sobald ich die externe Anwendung schließe, kann ich jedoch einen Socket an diesem Port öffnen.

Es scheint, als würde mein Programm nicht ordnungsgemäß beendet. Der Socket sollte beendet werden, wenn er beendet wird. Wenn jedoch der externe Prozess ausgeführt wird, wird dieser Socket niemals geschlossen.

Irgendwelche Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage