Partage via


Lazy<T>.IsValueCreated Propriété

Définition

Obtient une valeur qui indique si une valeur a été créée pour cette Lazy<T> instance.

public:
 property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean

Valeur de propriété

true si une valeur a été créée pour cette Lazy<T> instance ; sinon, false.

Remarques

Lorsque l’initialisation différée se produit pour une Lazy<T> instance, elle peut entraîner la création d’une valeur ou une exception levée. Si une exception est levée, le comportement suivant de l’instance dépend de l’effet de la Lazy<T> mise en cache des exceptions. Si l’instance a été créée à l’aide d’un constructeur qui ne spécifie pas de fonction d’initialisation, la Lazy<T> mise en cache des exceptions n’est pas en vigueur. Une tentative ultérieure d’initialisation de la Lazy<T> valeur peut réussir, et après la réussite de l’initialisation, la IsValueCreated propriété retourne true. Si l’instance a été créée avec une fonction d’initialisation (spécifiée par le paramètre du Lazy<T> constructeur), la Lazy<T>valueFactory mise en cache des exceptions est contrôlée par le mode de sécurité du thread.

  • Si le mode est ou LazyThreadSafetyMode.None, il n’y LazyThreadSafetyMode.ExecutionAndPublication a pas de deuxième chance d’initialiser l’instanceLazy<T>. Si une exception se produit et qu’elle n’est pas gérée dans la fonction d’initialisation, cette exception est mise en cache et se développe à nouveau sur les accès suivants de la Lazy<T>.Value propriété. Aucune valeur n’est créée si une exception est levée. Par conséquent, dans de tels cas IsValueCreated , retourne false.

  • Si le mode est LazyThreadSafetyMode.PublicationOnly, le premier thread qui réussit à exécuter la fonction d’initialisation (ou le constructeur sans paramètre) crée la valeur de l’instance Lazy<T> . Si la fonction d’initialisation lève une exception sur un thread, d’autres threads peuvent toujours essayer d’initialiser l’instance Lazy<T> . Tant que la valeur n’est pas créée, la IsValueCreated propriété retourne false.

S’applique à

Voir aussi