Unterschied zwischen Finalize und Dispose Methoden – Chudovo

Dispose ist eine direkte Methode zur Freisetzung nicht verwalteter Ressourcen und im Vergleich zu finalize () ist viel zuverlässiger. Auch diese Methode kann nicht verwendet werden, um verwaltbaren Speicher freizugeben. Es kann jedoch zur effektiven Rückgewinnung der nicht verwalteten Ressourcen verwendet werden, für die das Objekt möglicherweise Referenzen enthält. Der größte Vorteil ist, dass die Dispose Methode eine deterministische Freigabe nicht verwalteter Ressourcen ermöglicht.

Bei der Dispose Methose () wird das Objekt jedoch nicht direkt aus dem Speicher entfernt. Stattdessen wird es aus dem Speicher entfernt, wenn der Garbage Collector frei ist. Um die Dispose-Methode umzusetzen, sollte man GC.SuppressFinalize (this) direkt aufrufen, damit die automatische Implementierung von finalizer () verhindert wird.
Gemeinsamkeiten zwischen Dispose () und Finalize ()

Die größte Gemeinsamkeit zwischen dispose () und finalize () besteht darin, dass beide Methoden verwendet werden können, um den Speicher freizugeben, der nicht verwalteten Ressourcen zugewiesen ist. Es gibt jedoch eine ganze Reihe von Unterschieden. Unten in dem Artikel vergleichen wir Dispose () und Finalize () in Detail.

Dispose()
Die Dispose () -Methode wird hauptsächlich verwendet, um nicht verwaltete Ressourcen wie Dateien, Datenbanken und Streams freizugeben;
Die Dispose-Methode wird verwendet, um nicht verwaltete Ressourcen nur dann freizugeben, wenn sie aufgerufen werden;
Entwickler ruft selbständig die Dispose () -Methode direkt auf, indem er sie in die Code reinprogrammiert;
Dispose() ist eine offene Methode;
Die Dispose Methode wird schnell aufgerufen und umgesetzt.
Finalize()
Die Finalize () Methode wird verwendet, um Reinigungsprozesse für nicht verwaltete Ressourcen durchzuführen, bevor das Objekt gelöscht wird;
Die Finalize Methode wird verwendet, um nicht verwaltete Ressourcen dann freizugeben, wenn ein Objekt gelöscht wird;
Die Finalize () Methode wird indirekt vom Garbage Collector und nicht vom .Net Entwickler verwendet. Es geschieht automatisch;
Finalize() ist eine geschützte Methode;
Finalize() Methode wird langsam aufgerufen und umgesetzt.

Veröffentlicht von:

Chudovo

Am Förderturm 1
44575 Castrop-Rauxel
DE
Homepage: https://chudovo.de/

Ansprechpartner(in):
Karl Gorman
Pressefach öffnen


      

9 Besucher, davon 1 Aufrufe heute