Junior — Middle
Dlaczego ważne jest ręczne zarządzanie zwalnianiem pamięci w niektórych przypadkach?
sobes.tech AI
Odpowiedź od AI
W C# zazwyczaj używa się zbieracza śmieci (Garbage Collector), który automatycznie zwalnia nieużywaną pamięć. Jednak w niektórych przypadkach ważne jest ręczne zarządzanie zwalnianiem pamięci:
- Gdy obiekt korzysta z niezarządzanych zasobów (pliki, połączenia sieciowe, deskryptory), które nie są kontrolowane przez zbieracz śmieci.
- Aby terminowo zwolnić zasoby i uniknąć wycieków i blokad.
W tym celu implementuje się interfejs IDisposable i metodę Dispose(), w której jawnie zwalnia się zasoby.
Przykład:
class FileHandler : IDisposable
{
private FileStream _fileStream;
public FileHandler(string path) {
_fileStream = new FileStream(path, FileMode.Open);
}
public void Dispose() {
_fileStream?.Dispose();
}
}
W ten sposób ręczne zarządzanie zwalnianiem pamięci jest ważne dla kontroli zasobów i zapobiegania problemom z wydajnością i stabilnością aplikacji.