Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20162|Antwort: 0

[Quelle] {"Kein Zugriff auf ein entsorgtes Objekt.\r\nObjektname: 'Form1'."}.

[Link kopieren]
Veröffentlicht am 12.06.2016 16:28:41 | | | |

Wie man Ausnahmen beim Schließen eines Formulars vermeidet, wenn man eine Kontrolle über Threads hinweg aufruft, kann man nicht auf entsorgte Objekte zugreifen.
Beim Aufrufen einer Form über Threads in einem Thread hinweg und beim Verwenden von invoke zur Zuweisung von Werten oder zur Änderung von Eigenschaften an Formsteuerungen, taucht eine Ausnahme wie diese immer auf, wenn der Thread nicht beendet wird, bevor das Formular geschlossen wird: Kein Zugriff auf ein entsorgtes Objekt besteht.
Der Grund sollte sein, dass das Formular, wenn die Formularsteuerung im Thread aufgerufen wird, ausgeloggt wurde, sodass es alle Threads verlässt, bevor das Formular ausgeloggt wird. Um dieses Problem zu lösen, können Sie folgenden Code hinzufügen:


wird die Ausnahme nicht mehr angezeigt.
Das Aufrufen von system.environment.exit(0 kann das Programm komplett beenden, egal welcher Thread zum Beenden gezwungen wird, und das Programm sehr sauber beenden.



FormClosing Event

Wenn das Formular geschlossen wird, tritt das FormClosenting-Ereignis auf. Dieses Ereignis ist geregelt. Dadurch werden alle Ressourcen frei, die mit dem Formular zusammenhängen.

Wenn Sie diese Veranstaltung absagen, bleibt das Formular offen.

Wenn das Formular als Modus-Dialog erscheint, blendet das Schließen das Formular aus und setzt die Eigenschaft DialogResult auf Cancel. Durch das Setzen der DialogResult-Eigenschaft in einigen Ereignissen kann der Wert des DialogResult überschrieben werden, wenn der Benutzer oben rechts auf den Schließen-Button klickt.

FormClosed-Ereignis

Ein FormClosed-Ereignis tritt auf, nachdem die Close- oder Exit-Methode des Benutzers oder der Anwendungsklasse das Formular geschlossen hat.

Sie können dieses Ereignis nutzen, um einige der Ressourcen des Formulars freizugeben. Sie können dieses Ereignis auch nutzen, um einige Informationen im Eingabeformular zu speichern oder das Elternformular zu aktualisieren.





Vorhergehend:C#/Winform Version 12306 Login, Sie können manuell auf den Bildverifizierungscode klicken
Nächster:C#-Socket, um die Client-IP-Adresse und den Port zu erhalten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com