AsyncLazy<T>.DisposeValue Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odstraní líně inicializovanou hodnotu, pokud je k dispozici, a způsobí, že všechny následné pokusy o získání hodnoty selžou.
public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
Poznámky
Toto volání bude blokovat vyřazení (což může zahrnovat vytvoření samotné hodnoty, pokud již byla zahájena, ale ještě nebyla dokončena), pokud se jedná o první volání pro odstranění hodnoty.
Volání této metody převede tento objekt do uvolněného stavu, kde budoucí volání k získání hodnoty vyvolá ObjectDisposedException.
Pokud již byla hodnota vytvořena a implementuje IDisposable nebo IAsyncDisposable, bude odstraněna. Pokud objekt pro vytváření hodnot již začal, ale ještě nebyl dokončen, bude jeho hodnota odstraněna po dokončení objektu pro vytváření hodnot.
Pokud předchozí volání k získání hodnoty jsou v provozu při volání této metody, tato volání mohou být dokončena a jejich volající mohou získat hodnotu, ačkoli Dispose() mohou být nebo brzy volána na hodnotu, což vede tyto uživatele k zkušenosti ObjectDisposedExceptions .
Všimněte si všech podmínek založených na implementaci IDisposable hodnoty nebo IAsyncDisposable na skutečné hodnotě, nikoli na argumentu T
typu. To znamená, že i když T
může být IFoo
(který neimplementuje IDisposable), konkrétní typ, který implementuje IFoo
, a IDisposable proto se s ním zachází jako s jednorázovým objektem, jak je popsáno výše.