Ist das Entsäule -Muster ohne Finalizer Sinn?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Ist das Entsäule -Muster ohne Finalizer Sinn?

Post by Anonymous »

Angesichts dieses Code im Dispose-Muster aus msdn < /p>

Code: Select all

public class DisposableResourceHolder : IDisposable {

private SafeHandle resource; // handle to a resource

public DisposableResourceHolder() {
this.resource = ... // allocates the resource
}

public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing) {
if (disposing) {
if (resource!= null) resource.Dispose();
}
}
}
Warum sollte ein Aufruf von gc.suppressFinalize (this) Wenn das Objekt keinen Finalizer hat? Wenn mein Verständnis richtig ist, erreicht das Objekt nicht einmal eine Finalization -Warteschlange, von der er zuerst entfernt werden soll. Was fehlt mir, warum empfiehlt Microsoft das?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post