vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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 - Fortgeschrittene
Fehlermeldung ??? 
Autor: Fileplayer
Datum: 12.02.16 20:01

Hallo liebe User,

ich bin nicht der Oberckrack in VB aber doch schon ganz gut. Nun gibt es aber eine Fehlermeldung beim beenden eines Programmes ==>

========================================================================
Eine nicht behandelte Ausnahme des Typs "System.ObjectDisposedException"
ist in System.Windows.Forms.dll aufgetreten.

Zusätzliche Informationen: Auf das verworfene Objekt kann nicht
zugegriffen werden.
========================================================================

Soweit die Fehlermeldung. Das hängt irgendwie mit Invoke zusammen. Die Stelle im Code sieht so aus :

    Private Sub ShowText1(ByVal text As String)
        '  Da die Daten aus einem anderem Thread kommen müssen wir die Ausgabe 
        ' über Invoke machen
 
        If Me.TextBox1.InvokeRequired Then
            Dim d1 As New TextBox1Callback(AddressOf ShowText1)
            Me.Invoke(d1, New Object() {text})     <== hier geschied der Fehler _
              !!
        Else
 
            Me.TextBox1.Text = text
 
        End If
 
 
    End Sub
Muss ich vor dem beenden das Objekt verwerfen und wenn ja wie ?

Ich kämpfe schon seit 2 Tagen damit. Vieleicht kann mir einen von euch einen Tip geben.

Danke für eine Antwort!!

Guss Günni

Schon macht man es richtig funktioniert es !

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fehlermeldung ??? 
Autor: Manfred X
Datum: 12.02.16 21:47

Hallo!

Stelle sicher, daß der Thread, der das Invoke veranlaßt,
beendet ist, ehe das Formular geschlossen wird.
Oder verhindere das Schließen des Formulars, bis dieser Thread
seine Aufgaben erledigt hat.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fehlermeldung ??? 
Autor: sv00010
Datum: 13.02.16 08:09

Du hast eine Endlosschleife erstellt. Deshalb stürzt es ab.
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fehlermeldung ??? 
Autor: Manfred X
Datum: 13.02.16 11:11

Hallo!

Es ist keine Endlosschleife.
Bei InvokeRequired ruft sich die Routine per Invoke selbst auf.
Bei diesem Folge-Aufruf ist InvokeRequired aber "false" und es
wird nur der "Else"-Ast ausgeführt.

Beispiel-Formular:
Public Class frmInvokeDemo
 
 
    Dim tbo As New TextBox With _
      {.Parent = Me, .ReadOnly = True, .BackColor = Color.White}
 
    Delegate Sub stringDel(ByVal text As String)
 
 
 
    Private Sub frmInvokeDemo_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Dim th As New Threading.Thread(AddressOf ShowLetters)
        th.Start()
    End Sub
 
 
    Private Sub ShowLetters()
 
        For i As Integer = 65 To 65 + 26
            ShowText(Microsoft.VisualBasic.Chr(i))
            Threading.Thread.Sleep(600)
        Next i
        ShowText("Thread ist beendet")
    End Sub
 
 
    Private Sub ShowText(ByVal text As String)
        ' Falls der Aufruf nicht aus dem UI-THread kommt, muß der
        ' Zugriff auf das Control per Invoke/Delegat erfolgen
 
        If tbo.InvokeRequired Then
            Dim d1 As New stringDel(AddressOf ShowText)
            Me.Invoke(d1, New Object() {text})    
        Else
            With tbo
                .Text = text
                .SelectionStart = .Text.Length
            End With
        End If
    End Sub
 
End Class


Beitrag wurde zuletzt am 13.02.16 um 11:13:16 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Fehlermeldung ??? 
Autor: Fileplayer
Datum: 13.02.16 11:49

Danke an alle die geantwortet haben !

Der Hinweis mit der Form schiessen zu warten bis der 2te Thread beendet ist war der richtige Hinweis !

also Danke insbesondere an Manfred X

Gruss

Günni

Schon macht man es richtig funktioniert es !

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