Junior — Middle
Prečo je v niektorých prípadoch potrebné explicitne ukončiť prácu s úlohami, napriek existencii automatického zberača odpadu?
sobes.tech AI
Odpoveď od AI
Automatický zberač odpadkov (GC) v C# uvoľňuje pamäť obsadenú objektmi, ktoré sa už nepoužívajú, ale neriadí iné zdroje ako sú súbory, sieťové spojenia alebo deskriptory.
Preto je dôležité tieto zdroje explicitne uvoľniť implementáciou rozhrania IDisposable a volaním metódy Dispose(). To zabezpečuje včasné uvoľnenie zdrojov, zabraňuje únikom a zvyšuje výkon.
Príklad použitia using na automatické volanie Dispose:
using (var file = new FileStream("file.txt", FileMode.Open))
{
// Práca so súborom
}
// Tu sa súbor automaticky zatvorí
Takisto, aj napriek GC, je potrebné explicitne uvoľniť zdroje pre správne riadenie ne-riadených zdrojov.