StreamReder / StreamWriter richtig schließen

19/08/2008 - 11:43 von Manfred Maierhofer | Report spam
Hallo,

Die entsprechenden Objekte werden deklariert:

Private swSender As StreamWriter
Private srReceiver As StreamReader
Private tcpServer As TcpClient

Die Verwendung klappt auch ganz gut, aber beim Versuch sie zu entladen
stürzt das Programm immer ohne Meldung ab. Hab diese close-Anweisungen jetzt
mal versucht explizit (und nicht onexit) aufzurufen mit Fehlerabsicherung,

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
swSender.Close()
srReceiver.Close()
tcpServer.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

aber es kommt keine Fehlermeldung, stürtzt einfach ab. Auch wenn ich sie
jeweils einzeln aufrufe reißen sie das Programm in den Abgrund. Weiß nicht
ob ihre Verwendung auch wichtig ist, die habe ich aus Platzgründen jetzt mal
nicht mit rein kopiert. Das beenden müßte doch auch unabhàngig davon sein
oder nicht? Wie kann das beobachtete Verhalten zustande kommen?

Grüße,

Manfred
 

Lesen sie die antworten

#1 Peter Fleischer
19/08/2008 - 15:41 | Warnen spam
"Manfred Maierhofer" schrieb im Newsbeitrag
news:g8e4ju$9ne$03$

Private tcpServer As TcpClient

Die Verwendung klappt auch ganz gut, aber beim Versuch sie zu entladen
stürzt das Programm immer ohne Meldung ab. Hab diese close-Anweisungen
jetzt mal versucht explizit (und nicht onexit) aufzurufen mit
Fehlerabsicherung,

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
swSender.Close()
srReceiver.Close()
tcpServer.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

aber es kommt keine Fehlermeldung, stürtzt einfach ab. Auch wenn ich sie
jeweils einzeln aufrufe reißen sie das Programm in den Abgrund. Weiß nicht
ob ihre Verwendung auch wichtig ist, die habe ich aus Platzgründen jetzt
mal nicht mit rein kopiert. Das beenden müßte doch auch unabhàngig davon
sein oder nicht? Wie kann das beobachtete Verhalten zustande kommen?



Hi Manfred,
hast beim TCPClient noch Sockets aktiv und/oder einen Listener? Wenn ja,
dann zwingst du deren asynchronen Aktivitàten zum abnormalen Ende. Die
Fehlermeldung sollte das aber aussagen.

Viele Gruesse

Peter

Ähnliche fragen