Acasă Dezvoltare Ce este finalizarea? - definiție din techopedia

Ce este finalizarea? - definiție din techopedia

Cuprins:

Anonim

Definiție - Ce înseamnă Finalize?

Finalize este o metodă obiect care conține codul necesar pentru a elibera resurse neadministrate și pentru a efectua operațiuni de curățare înainte de colectarea gunoiului (GC).


Metoda de finalizare este utilizată pentru curățarea resurselor care nu sunt gestionate de .NET. Deși cadrul .NET este proiectat pentru a elibera resursele gestionate prin realizarea implicită a sarcinilor de gestionare a memoriei, resursele de aplicații neadministrate - cum ar fi manerele de fișiere și conexiunile la baza de date - trebuie să fie eliberate în mod explicit.

Techopedia explică Finalizează

În timp ce finalizarea este proiectată să fie numită implicit de GC, metoda de eliminare poate fi apelată în mod explicit prin codul de utilizator la resurse gratuite.


Finalizarea este similară cu distrugătoarele tradiționale C ++, deoarece fiecare este responsabil pentru eliberarea resurselor obiectului. Distrugătoarele C ++ sunt executate imediat când un obiect iese din domeniul de aplicare, în timp ce finalizarea este apelată în timpul curățării obiectului la GC. În C #, finalizarea nu poate fi apelată sau anulată direct. Dacă este declarat un distrugător, acesta este convertit în metoda de finalizare atunci când programul este compilat.


În timpul finalizării, trebuie evitate alocarea memoriei sau apelarea metodelor virtuale. Scopul finalizării trebuie protejat astfel încât să fie accesat doar în cadrul aceleiași clase sau clasei derivate. Finalizarea nu ar trebui să facă referire la alte obiecte. În C #, apelarea finalizării direct pe un obiect, în afara clasei sale de bază, este o operație nevalidă. Codul de finalizare ar trebui să fie minim, fără apeluri capabile să blocheze firul apelant. După cum se numește finalizarea unui thread dedicat, codul său nu ar trebui să utilizeze stocarea locală a thread-ului sau nicio tehnică care necesită afinitate pentru filet.


Utilizarea finalizării ca mecanism de defașare pentru eliberarea de memorie sau resurse neadministrate este esențială, din cauza lipsei de determinism și a efectelor asupra performanței GC.

Această definiție a fost scrisă în contextul .NET
Ce este finalizarea? - definiție din techopedia