Freigeben über


AsyncLazy<T>.DisposeValueAsync Methode

Definition

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 .

Gilt für: