Sadržaj:
Definicija - Što znači raspolaganje?
U kontekstu C #, dispose je objektna metoda koja se poziva na izvršavanje koda potrebnog za čišćenje memorije i oslobađanje i ponovno postavljanje neupravljanih resursa, kao što su ručke datoteka i veze s bazom podataka. Dispose poboljšava radne karakteristike i optimizira memoriju oslobađajući neupravljive predmete i oskudne resurse, poput rukohvata za grafički uređaj (GDI) koji se koriste u aplikacijama s ograničenim prostorom za Windows.
Način Dispose, koji pruža IDisposable sučelje, implementira Dispose pozive. Uzorak za odlaganje osmišljen je za pravovremeno i predvidljivo čišćenje, sprječavanje privremenog curenja memorije i odlaganje resursa.
Tehopedia objašnjava Dispose
.NET okvir olakšava prikupljanje smeća (GC), upravlja memorijom objekata i resursima i vraća nevažeće reference memorije objekta pozivanjem na Finalize - nedeterminističku metodu. Metoda Dispose kontrolira životni vijek slučajeva objektne memorije i pruža eksplicitnu kontrolu čišćenja memorije, nasuprot Finalizeovom implicitnom čišćenju memorije. Odlaganje se može pozvati čak i kad postoje druge instance memorijskog objekta, dok se konačna mogućnost može pozvati tek nakon što se uništi posljednji memorijski objekt.
Pravila metode odlaganja su sljedeća:
- Koristi se za neupravljane resurse koji zahtijevaju trenutno puštanje nakon upotrebe.
- Ako se ne zove Dispose, treba primijeniti metodu Finalize.
- Nakon poziva metode Dispose, mora se pozvati metoda GC.SuppressFinalize kako bi se spriječila metoda Finalize i izbjegla nepotrebna GC.
- Iznimke bi trebalo pažljivo postupati ako se metoda Dispose poziva više puta. Ako su resursi zbrinuti, bilo koja instancijska metoda može baciti ObjectDisposedException.
- Objekt s prethodno nazvanom metodom raspolaganja ne može se ponovno upotrijebiti.
- Odlaganje se preporučuje samo za upravljanje objektima izvornih resursa i komponentnim modelom (COM) objektima izloženim .NET Framework-u.
- Zbog nepredvidivih rezultata istodobno se iz više niti ne može istovremeno pozivati odlaganje.
- Vrijednosti vrijednosti ne smiju se stvarati kao raspoloživi tipovi ili s neupravljanim članovima resursa.
- Kada se koriste neupravljani resursi, smatra se najboljom praksom primijeniti iskaz izvornog koda Izvorni kod koji automatski poziva metodu objekta Dispose nakon dovršetka objektnog koda.
