Sprache

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 den Aufbau des Werts selbst beinhalten kann, wenn er bereits begonnen, aber noch nicht abgeschlossen ist), wenn es der erste Aufruf ist, den Wert zu löschen.

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.

Wurde der Wert bereits erstellt und implementiert IDisposable oder IAsyncDisposable, wird er gelöscht. 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: