AsyncLazy<T>.DisposeValue Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Usuwa leniwie zainicjowaną wartość, jeśli jest jednorazowa, i powoduje, że wszystkie kolejne próby uzyskania wartości nie powiodły się.
public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
Uwagi
To wywołanie zablokuje likwidację (która może obejmować budowę samej wartości, jeśli została już uruchomiona, ale jeszcze nie została zakończona), jeśli jest to pierwsze wywołanie usunięcia wartości.
Wywołanie tej metody spowoduje umieszczenie tego obiektu w stanie usunięcia, w którym przyszłe wywołania w celu uzyskania wartości będą zgłaszać ObjectDisposedExceptionwartość .
Jeśli wartość została już utworzona i zaimplementowana IDisposable lub IAsyncDisposable, zostanie ona usunięta. Jeśli fabryka wartości została już uruchomiona, ale nie została jeszcze ukończona, jego wartość zostanie usunięta po zakończeniu fabryki wartości.
Jeśli wcześniejsze wywołania w celu uzyskania wartości są w locie po wywołaniu tej metody, te wywołania mogą zakończyć się, a ich osoby wywołujące mogą uzyskać wartość, chociaż Dispose() mogły zostać wywołane lub wkrótce zostaną wywołane na wartość, co prowadzi tych użytkowników do środowiska ObjectDisposedException.
Zanotuj wszystkie warunki na podstawie implementacji IDisposable wartości lub IAsyncDisposable są oparte na rzeczywistej wartości, a nie na argumencie T
typu. Oznacza to, że chociaż T
może być IFoo
(co nie implementuje ), konkretny typ, który implementuje, może być implementowany IDisposableIDisposable, a tym samym być traktowany jako obiekt jednorazowyIFoo
, jak opisano powyżej.