Sprache

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

Ein Vorgang, der abgeschlossen wird, wenn der Wert verworfen wurde, oder sofort, wenn der Wert bereits gelöscht oder durch einen vorherigen Aufruf zur Entsorgung geplant wurde.

Hinweise

Wenn Sie diese Methode aufrufen, 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 und implementiert IDisposablewurde, IAsyncDisposableoder IAsyncDisposable der Wert gelöscht wird. Wenn die Wertfactory bereits gestartet, aber noch nicht abgeschlossen wurde, wird der Wert gelöscht, wenn die Wertfactory abgeschlossen ist.

Wenn sich zuvor Aufrufe zum Abrufen des Werts im Test-Flight befinden, wenn diese Methode aufgerufen wird, können diese Aufrufe abgeschlossen sein, und ihre Anrufer erhalten möglicherweise den Wert, obwohl Dispose() der Wert möglicherweise bereits aufgerufen wurde oder bald aufgerufen wird, was dazu führt, dass diese Benutzer eine ObjectDisposedException.

Notieren Sie sich alle Bedingungen basierend auf dem Wert IDisposable , der implementiert wird oder IAsyncDisposable auf dem tatsächlichen Wert basiert, und nicht auf dem T Typargument. Dies bedeutet, dass zwar TIFoo zwar (was nicht implementiert wird) der konkrete TypIFoo, der implementiert IDisposablewird, implementiert IDisposable und somit wie oben beschrieben als einwegsobjekt behandelt werden kann.

Gilt für: