Lazy<T>.IsValueCreated Propiedad
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í.
Obtiene un valor que indica si se se creó un valor para esta instancia Lazy<T>.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
Valor de propiedad
true
si se creó un valor para esta instancia Lazy<T>; en caso contrario, false
.
Comentarios
Cuando se produce una inicialización diferida para una Lazy<T> instancia, puede dar lugar a que se cree un valor o se produzca una excepción. Si se produce una excepción, el comportamiento posterior de la Lazy<T> instancia depende de si el almacenamiento en caché de excepciones está en vigor. Si la Lazy<T> instancia se creó mediante un constructor que no especifica una función de inicialización, el almacenamiento en caché de excepciones no está en vigor. Un intento posterior de inicializar Lazy<T> podría ser correcto y, después de que la inicialización correcta, la IsValueCreated propiedad devuelve true
. Si la Lazy<T> instancia se creó con una función de inicialización (especificada por el valueFactory
parámetro del constructor), el almacenamiento en caché de Lazy<T> excepciones se controla mediante el modo de seguridad de subprocesos.
Si el modo es LazyThreadSafetyMode.ExecutionAndPublication o LazyThreadSafetyMode.None, no hay segunda oportunidad de inicializar la Lazy<T> instancia. Si se produce una excepción y no se controla en la función de inicialización, esa excepción se almacena en caché y se vuelve a iniciar en los accesos posteriores de la Lazy<T>.Value propiedad. No se crea ningún valor si se produce una excepción, por lo que, en tales casos IsValueCreated , devuelve
false
.Si el modo es LazyThreadSafetyMode.PublicationOnly, el primer subproceso que se ejecuta correctamente en la ejecución de la función de inicialización (o el constructor sin parámetros) crea el valor de la Lazy<T> instancia. Si la función de inicialización produce una excepción en un subproceso, otros subprocesos pueden intentar inicializar la Lazy<T> instancia. Hasta que se crea el valor, la IsValueCreated propiedad devuelve
false
.