Lazy<T>.IsValueCreated Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.