Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 20162|Răspunde: 0

[Sursă] {"Nu se poate accesa un obiect aruncat.\r\nNume obiect: 'Form1'."}.

[Copiază linkul]
Postat pe 12.06.2016 16:28:41 | | | |

Cum să eviți excepțiile când se închide un formular, când se apelează un control între fire de execuție, nu pot accesa obiectele eliminate.
Când se apelează un formular între fire într-un fir de execuție și când se folosește invoke pentru a atribui valori sau a modifica proprietăți către controalele formularului, dacă firul nu este terminat înainte ca formularul să fie închis, o astfel de excepție va apărea întotdeauna: nu se poate accesa un obiect eliminat.
Motivul ar trebui să fie că, atunci când controlul formularului este apelat în thread, formularul a fost delogat, deci iese din toate firele înainte ca formularul să fie delogat. Pentru a rezolva această problemă, poți adăuga următorul cod:


Nu va mai apărea excepția.
Apelarea system.environment.exit(0) poate ieși complet din program, indiferent ce fir de discuție este forțat să închidă, încheind programul foarte curat.



Evenimentul FormClosing

Când formularul este închis, apare evenimentul FormClosersing. Acest eveniment este gestionat. Aceasta eliberează toate resursele legate de formular.

Dacă anulați acest eveniment, formularul rămâne deschis.

Când formularul apare ca un dialog de mod, apăsarea pe Închide ascunde formularul și setează proprietatea DialogResult pe Anulare. Prin setarea proprietății DialogResult în unele evenimente, valoarea DialogResult poate fi suprascrisă atunci când utilizatorul apasă butonul de închidere din colțul din dreapta sus.

Eveniment FormClosed

Un eveniment FormClosed apare după ce metoda de închidere sau ieșire a utilizatorului sau a clasei Application închide formularul.

Poți folosi acest eveniment pentru a elibera unele dintre resursele formularului. Poți folosi acest eveniment și pentru a salva unele informații în formularul de intrare sau pentru a actualiza formularul părinte.





Precedent:Autentificare C#/Winform versiunea 12306, poți da click manual pe codul de verificare a imaginii
Următor:Socket C# pentru a obține adresa IP și portul clientului
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com