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 diferible si se descarta y hace que todos los intentos posteriores obtengan el valor.
public void DisposeValue();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()
Comentarios
Esta llamada bloqueará 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 la factoría 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 lleva a los usuarios a experimentar 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 describe anteriormente.