AsyncLazy<T>.DisposeValue Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Entfernt den lazily initialisierten Wert, falls verfügbar, und führt dazu, dass alle nachfolgenden Versuche, den Wert abzurufen, fehlschlagen.
public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
Hinweise
Dieser Aufruf blockiert die Entsorgung (was die Erstellung des Werts selbst einschließen kann, wenn er bereits gestartet, aber noch nicht abgeschlossen ist), wenn es sich um den ersten Aufruf zur Entsorgung des Werts handelt.
Durch Das Aufrufen dieser Methode wird dieses Objekt in einen verworfenen Zustand versetzt, in dem zukünftige Aufrufe zum Abrufen des Werts ausgelöst ObjectDisposedExceptionwerden.
Wenn der Wert bereits erstellt wurde und implementiert IDisposable oder IAsyncDisposable, wird er verworfen. Wenn die Wertfactory bereits gestartet, aber noch nicht abgeschlossen wurde, wird ihr Wert verworfen, wenn die Value Factory abgeschlossen ist.
Wenn sich vorherige Aufrufe zum Abrufen des Werts im Flight befinden, wenn diese Methode aufgerufen wird, können diese Aufrufe abgeschlossen werden, und ihre Aufrufer können den Wert abrufen, obwohl Dispose() der Wert möglicherweise für den Wert aufgerufen wurde oder bald aufgerufen wird, was dazu führt, dass diese Benutzer eine ObjectDisposedExceptionerhalten.
Notieren Sie sich alle Bedingungen basierend auf dem Wert, der implementiert IDisposable oder IAsyncDisposable auf dem tatsächlichen Wert basiert, und nicht auf dem T
Typargument. Dies bedeutet, dass der konkrete Typ, der implementiert, zwar T
sein IFoo
kann (was nicht implementiert IDisposable), jedoch wie oben beschrieben als ein wegwerfbares IFoo
Objekt behandelt werden kann IDisposable .