AsyncLazy<T>.DisposeValueAsync 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 System.Threading.Tasks.Task DisposeValueAsync ();
member this.DisposeValueAsync : unit -> System.Threading.Tasks.Task
Public Function DisposeValueAsync () As Task
Gibt zurück
Eine Aufgabe, die abgeschlossen wird, wenn der Wert verworfen wurde, oder sofort, wenn der Wert bereits verworfen wurde oder durch einen vorherigen Aufruf für die Entsorgung geplant wurde.
Hinweise
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 IDisposableimplementiert, IAsyncDisposableoder 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 .