Sdílet prostřednictvím


AsyncLazy<T>.DisposeValue Metoda

Definice

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.

Platí pro