Freigeben über


AsyncLazy<T>.DisposeValue Methode

Definition

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 .

Gilt für: