vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Seek1
Datum: 20.04.18 14:07

Hallo Leute,

Ich verwende ein Modul, welches an USB über einen RS232/USB Wandler verfügt.
Ab und an kommt es vor, das sich mein Programm mit "ObjectDisposedException Das SafeHandle wurde geschlossen" verabschiedet.

Ich weiss auch wo:
        Try
            Dim NumberOfReadedBytes As Integer = sp_serialport.BytesToRead
            For i As Integer = 1 To NumberOfReadedBytes
                tempbyte = sp_serialport.ReadByte()
                Readstring = Readstring + Chr(tempbyte)
            Next i
        Catch ex As Exception
            Errormessage = "Failed to read in the bytes !"
            Exit Sub
        End Try
Also genau bei der Zeile "sp_serialport.BytesToRead" oder "sp_serialport.ReadByte()".
Ich habe das ganze zwar im Try Block, aber ObjectDisposedException wird da angeblich nicht abgefangen.

Wie kann ich den Fehler abfangen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Manfred X
Datum: 20.04.18 15:07

Hallo!

Wie Du schreibst, läßt sich dieses Problem vermutlich nicht durch
einen Try..Catch..Block (vollständig) lösen.

Du mußt untersuchen, unter welchen Bedingungen das verwendete
Handle geschlossen wird.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Seek1
Datum: 20.04.18 15:22

Das Handle wird geschlossen, wenn der USB Anschluss abgezogen wird.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Manfred X
Datum: 20.04.18 15:28

Naja.
Viele Programme, die über einen USB-Anschluß kommunizieren,
bekommen Probleme, wenn der Anschluß zur Laufzeit abgezogen wird.

Eventuell gibt es die Möglichkeit, "sicheres Entfernen" über
Windows durchführen zu lassen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Seek1
Datum: 20.04.18 15:32

Das Problem ist, das ich nicht "bewusst" abziehen kann.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Manfred X
Datum: 20.04.18 15:36

Schau mal hier ...
https://stackoverflow.com/questions/3808885/net-4-serial-port-objectdisposedexception-on-windows-7-only
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Seek1
Datum: 23.04.18 08:56

Auf gut deutsch: Es gibt keine Lösung dafür.
Mein Programm muss auch unter Mono laufen.
Also kann ich keine Drittanbieter einsetzen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ObjectDisposedException Das SafeHandle wurde geschlossen -> Wie abfangen 
Autor: Seek1
Datum: 24.04.18 13:37

Habe es jetzt hinbekomme.
Es muss zuerst zwischen Linux und Windows unterschieden werden.
Meine Anwendung läuft wie besagt unter Mono und direkt auf Windows.
Danach muss abgefragt werden, ob das Serialport noch vorhanden ist.
Bei Windows: In der serialport collection nachsehen.
Bei Linux: Mit file.exist prüfen, ob es z.Bsp. /dev/ttyUSB0 gibt.

Wenn es das Port nicht mehr gibt:
Linux: Kein Dispose durchführen! Einfach ein neues Serialport control estellen.
Windows: Dispose durchführen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel