Junior — Middle
De ce este important să gestionezi manual eliberarea memoriei în unele cazuri?
sobes.tech AI
Răspuns de la AI
În C# se folosește de obicei colectorul de gunoi (Garbage Collector), care eliberează automat memoria neutilizată. Cu toate acestea, în unele cazuri, este important să gestionezi manual eliberarea memoriei:
- Când un obiect utilizează resurse nesupravegheate (fișiere, conexiuni de rețea, descriptorii) care nu sunt controlate de colectorul de gunoi.
- Pentru a elibera resursele în timp util și a evita scurgerile și blocajele.
Pentru aceasta, se implementează interfața IDisposable și metoda Dispose(), unde resursele sunt eliberate explicit.
Exemplu:
class FileHandler : IDisposable
{
private FileStream _fileStream;
public FileHandler(string path) {
_fileStream = new FileStream(path, FileMode.Open);
}
public void Dispose() {
_fileStream?.Dispose();
}
}
Astfel, gestionarea manuală a eliberării memoriei este importantă pentru controlul resurselor și prevenirea problemelor de performanță și stabilitate ale aplicației.