AsyncLazy<T>.DisposeValue Metodo

Definizione

Elimina il valore inizializzato in modo differibile se eliminabile e causa l'esito negativo di tutti i tentativi successivi di ottenere il valore.

public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()

Commenti

Questa chiamata bloccherà l'eliminazione (che può includere la costruzione del valore stesso se è già stata avviata ma non ancora completata) se è la prima chiamata a eliminare il valore.

La chiamata a questo metodo inserisce questo oggetto in uno stato eliminato in cui le chiamate future per ottenere il valore genereranno ObjectDisposedException.

Se il valore è già stato prodotto e implementato IDisposable o IAsyncDisposable, verrà eliminato. Se la factory del valore è già stata avviata ma non è ancora stata completata, il relativo valore verrà eliminato al termine della factory del valore.

Se le chiamate precedenti per ottenere il valore sono in anteprima quando viene chiamato questo metodo, tali chiamate possono essere completate e i chiamanti possono ottenere il valore, anche se Dispose() potrebbe essere stato o presto verrà chiamato sul valore, portando tali utenti a sperimentare un .ObjectDisposedException

Si notino tutte le condizioni in base al valore che implementa IDisposable o IAsyncDisposable si basa sul valore effettivo, anziché sull'argomento T di tipo. Ciò significa che anche se T può essere IFoo (che non implementa IDisposable), il tipo concreto che implementa IFoo può implementare IDisposable e quindi essere considerato come un oggetto eliminabile come descritto in precedenza.

Si applica a