Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Lazy<T>.IsValueCreated

 

Publicado: octubre de 2016

Obtiene un valor que indica si se se creó un valor para esta instancia Lazy<T>.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public bool IsValueCreated { get; }

Valor de propiedad

Type: System.Boolean

true si se creó un valor para esta instancia Lazy<T>; en caso contrario, false.

Cuando se produce la inicialización diferida para un Lazy<T> instancia, ya que podrían producirse en un valor que se está creando o se producirá una excepción. Si una excepción es el comportamiento producido, las siguientes de la Lazy<T> instancia depende de si el almacenamiento en caché de excepción está en vigor. Si el Lazy<T> instancia se creó mediante un constructor que no especifica una función de inicialización, a continuación, el almacenamiento en caché de excepción no está en vigor. Un intento posterior de inicializar el Lazy<T> podría realizarse correctamente y después de la inicialización correcta del IsValueCreated propiedad devuelve true. Si el Lazy<T> instancia se creó con una función de inicialización (especificado por el valueFactory parámetro de la Lazy<T> constructor), a continuación, el almacenamiento en caché de excepción se controla mediante el modo de seguridad para subprocesos.

  • Si el modo es LazyThreadSafetyMode.ExecutionAndPublication o LazyThreadSafetyMode.None, no hay ninguna segunda oportunidad de inicializar el 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 producir en accesos posteriores de la Lazy<T>.Valuepropiedad. No se crea ningún valor si se produce una excepción, por lo que en estos 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 predeterminado) crea el valor de la Lazy<T> instancia. Si la función de inicialización produce una excepción en un subproceso, otros subprocesos todavía pueden intentar inicializar el Lazy<T> instancia. Hasta que se cree el valor, el IsValueCreated propiedad devuelve false.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: