AsyncLazy<T>.DisposeValue 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 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.