Page 1 of 1

Ist das Entsäule -Muster ohne Finalizer Sinn?

Posted: 20 Mar 2025, 12:30
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?