Compartir a través de


Lazy<T>.IsValueCreated Propiedad

Definición

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.

Se aplica a

Consulte también