AsyncLazy<T>.DisposeValue Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Elimina el valor inicializado de forma diferible si es descartable y hace que se produzcan errores en todos los intentos posteriores de obtener el valor.
public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
Comentarios
Esta llamada se bloqueará a la eliminación (que puede incluir la construcción del propio valor si ya se ha iniciado pero aún no ha finalizado) si es la primera llamada para eliminar el valor.
Al llamar a este método, este objeto se colocará en un estado eliminado donde futuras llamadas para obtener el valor producirán ObjectDisposedException.
Si el valor ya se ha generado e implementa IDisposable o IAsyncDisposable, se eliminará. Si el generador de valores ya se ha iniciado pero aún no se ha completado, su valor se eliminará cuando se complete el generador de valores.
Si las llamadas anteriores para obtener el valor están en curso cuando se llama a este método, esas llamadas pueden completarse y sus llamadores pueden obtener el valor, aunque Dispose() puede haber sido o pronto se llamará en el valor, lo que hace que esos usuarios experimenten un ObjectDisposedException.
Tenga en cuenta todas las condiciones basadas en el valor que implementa IDisposable o IAsyncDisposable se basa en el valor real, en lugar del T
argumento type. Esto significa que, aunque T
puede ser IFoo
(que no implementa IDisposable), el tipo concreto que implementa IFoo
puede implementar IDisposable y, por tanto, ser tratado como un objeto descartable como se ha descrito anteriormente.