Junior — Middle
Prečo je v niektorých prípadoch dôležité ručne spravovať uvoľňovanie pamäte?
sobes.tech AI
Odpoveď od AI
V jazyce C# sa zvyčajne používa zberač odpadu (Garbage Collector), ktorý automaticky uvoľňuje nepoužívanú pamäť. Avšak v niektorých prípadoch je dôležité spravovať uvoľňovanie pamäte manuálne:
- Keď objekt používa neinštalované zdroje (súbory, sieťové spojenia, deskriptory), ktoré nie sú kontrolované zberačom odpadu.
- Na včasné uvoľnenie zdrojov a zabránenie únikom a zablokovaniam.
Na to sa implementuje rozhranie IDisposable a metóda Dispose(), kde sú zdroje explicitne uvoľnené.
Príklad:
class FileHandler : IDisposable
{
private FileStream _fileStream;
public FileHandler(string path) {
_fileStream = new FileStream(path, FileMode.Open);
}
public void Dispose() {
_fileStream?.Dispose();
}
}
Týmto je manuálne riadenie uvoľňovania pamäte dôležité na kontrolu zdrojov a prevenciu problémov s výkonom a stabilitou aplikácie.