Kapitel 12. Abfallentsorgung und Speicherbereinigung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Einige Objekte erfordern expliziten Abrisscode, um Ressourcen wie offene Dateien, Sperren, Betriebssystem-Handles und nicht verwaltete Objekte freizugeben. Im .NET-Sprachgebrauch wird dies als Entsorgung bezeichnet und durch die Schnittstelle IDisposable unterstützt. Auch der verwaltete Speicher, der von ungenutzten Objekten belegt wird, muss irgendwann wieder freigegeben werden; diese Funktion wird als Speicherbereinigung bezeichnet und von der CLR ausgeführt.

Die Entsorgung unterscheidet sich von der Speicherbereinigung dadurch, dass die Entsorgung in der Regel explizit veranlasst wird, während die Speicherbereinigung völlig automatisch erfolgt. Mit anderen Worten: Der Programmierer kümmert sich um Dinge wie die Freigabe von Datei-Handles, Sperren und Betriebssystemressourcen, während die CLR den Speicher freigibt.

In diesem Kapitel werden sowohl die Beseitigung als auch die Speicherbereinigung besprochen. Außerdem werden die C#-Finalizer und das Muster beschrieben, mit dem sie als Backup für die Beseitigung dienen können. Abschließend werden die Feinheiten des Garbage Collectors und andere Optionen der Speicherverwaltung besprochen.

IDisposable, Dispose und Close

Der .NET Core definiert eine spezielle Schnittstelle für Typen, die eine Abrissmethode benötigen:

 public interface IDisposable ...

Get C# 8.0 in einer Kurzfassung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.