Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20162|Risposta: 0

[Fonte] {"Non può accedere a un oggetto smaltito.\r\nNome oggetto: 'Form1'."}.

[Copiato link]
Pubblicato su 12/06/2016 16:28:41 | | | |

Come evitare eccezioni quando si chiude un modulo, quando si chiama un controllo tra thread non si può accedere agli oggetti eliminati.
Quando si chiama un form tra thread in un thread, e si usa invoke per assegnare valori o modificare proprietà ai controlli del modulo, se il thread non viene terminato prima della chiusura del modulo, apparirà sempre un'eccezione del genere: non si può accedere a un oggetto smaltito.
Il motivo dovrebbe essere che quando il controllo form viene chiamato nel thread, il form è stato disconnesso, quindi esce da tutti i thread prima che il form venga disconnesso. Per risolvere questo problema, puoi aggiungere il seguente codice:


Non farà più apparire l'eccezione.
Chiamare system.environment.exit(0) può uscire completamente dal programma, indipendentemente dal thread che viene costretto a chiudersi, chiudendo il programma in modo molto pulito.



Evento di chiusura FormInstant

Quando il modulo è chiuso, si verifica l'evento FormChiusura. Questo evento è gestito. Questo libera tutte le risorse relative al modulo.

Se annulli questo evento, il modulo rimane aperto.

Quando il modulo appare come dialogo di modalità, cliccando su Chiudi nasconde il modulo e imposta la proprietà DialogResult su Annulla. Impostando la proprietà DialogResult in alcuni eventi, il valore di DialogResult può essere sovrascritto quando l'utente clicca sul pulsante chiusa in alto a destra.

Evento FormClosed

Un evento FormClosed si verifica dopo che il metodo Chiudi o Uscita della classe utente o Application chiude il modulo.

Puoi usare questo evento per liberare alcune risorse del modulo. Puoi anche usare questo evento per salvare alcune informazioni nel modulo di input o per aggiornare il modulo genitore.





Precedente:C#/Winform versione 12306 accesso, puoi cliccare manualmente sul codice di verifica immagine
Prossimo:C# per ottenere l'indirizzo IP e la porta del client
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com