Sisällysluettelo:
Määritelmä - mitä Viimeistely tarkoittaa?
Viimeistely on objektimenetelmä, joka sisältää koodin, jota tarvitaan hallitsemattomien resurssien vapauttamiseen ja puhdistustoimintojen suorittamiseen ennen roskien keräystä (GC).
Viimeistelymenetelmää käytetään sellaisten resurssien puhdistamiseen, joita .NET ei hallitse. Vaikka .NET-kehys on suunniteltu vapauttamaan hallitut resurssit suorittamalla implisiittisesti muistinhallintatehtäviä, hallitsemattomat sovellusresurssit - kuten tiedostokahvat ja tietokantayhteydet - on vapautettava nimenomaisesti.
Techopedia selittää viimeistelyn
Vaikka viimeistely on suunniteltu kutsumaan epäsuorasti GC: lle, hävitysmenetelmää voidaan kutsua eksplisiittisesti käyttäjäkoodin avulla resurssien vapauttamiseksi.
Viimeistely on samanlainen kuin perinteiset C ++ -hävittäjät, koska kukin vastaa objektiresurssien vapauttamisesta. C ++ -hävittäjät suoritetaan heti, kun objekti poistuu laajuudesta, kun taas viimeistelyä kutsutaan objektin puhdistuksen aikana GC: ssä. C # -merkinnässä viimeistelyä ei voida suoraan kutsua tai ohittaa. Jos tuhoaja julistetaan, se muunnetaan viimeistelymenetelmäksi, kun ohjelma käännetään.
Viimeistelyn aikana on vältettävä muistin varaamista tai virtuaalisten menetelmien kutsumista. Viimeistelyn laajuus olisi suojattava siten, että siihen päästään vain samassa luokassa tai siitä johdetussa luokassa. Viimeistele ei saa viitata muihin objekteihin. C #: ssa viimeistelyn soittaminen suoraan muulle kuin sen perusluokalle on virheellinen toimenpide. Viimeistelykoodin tulee olla minimaalinen ilman, että yhtään puhelua voi estää kutsuvan langan. Koska viimeistelyä kutsuu omistettu säie, sen koodissa ei tulisi käyttää säikeen paikallista tallennusta tai mitään tekniikkaa, joka vaatii säiettä.
Finaalin käyttäminen varamekanismina hallitsemattoman muistin tai resurssien vapauttamiseksi on välttämätöntä, koska päättäväisyyttä ja vaikutuksia GC: n suorituskykyyn ei ole.
