Lazy<T>.IsValueCreated Eigenschap

Definitie

Hiermee wordt een waarde opgehaald die aangeeft of er een waarde is gemaakt voor dit Lazy<T> exemplaar.

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

Waarde van eigenschap

trueals er een waarde is gemaakt voor dit Lazy<T> exemplaar; anders. false

Opmerkingen

Wanneer luie initialisatie plaatsvindt voor een Lazy<T> exemplaar, kan dit ertoe leiden dat er een waarde wordt gemaakt of dat er een uitzondering wordt gegenereerd. Als er een uitzondering wordt gegenereerd, is het volgende gedrag van het Lazy<T> exemplaar afhankelijk van of het opslaan van uitzonderingen in de cache van kracht is. Als het Lazy<T> exemplaar is gemaakt met behulp van een constructor die geen initialisatiefunctie opgeeft, is uitzonderingscaching niet van kracht. Een volgende poging om het Lazy<T> te initialiseren, kan slagen en na een geslaagde initialisatie wordt de IsValueCreated eigenschap geretourneerd true. Als het Lazy<T> exemplaar is gemaakt met een initialisatiefunctie (opgegeven door de valueFactory parameter van de Lazy<T> constructor), wordt uitzonderingscache beheerd door de veiligheidsmodus van de thread.

  • Als de modus is LazyThreadSafetyMode.ExecutionAndPublication of LazyThreadSafetyMode.None, is er geen tweede kans om het Lazy<T> exemplaar te initialiseren. Als er een uitzondering optreedt en niet wordt verwerkt in de initialisatiefunctie, wordt deze uitzondering in de cache opgeslagen en opnieuw geplaatst bij volgende toegang tot de Lazy<T>.Value eigenschap. Er wordt geen waarde gemaakt als er een uitzondering wordt gegenereerd, dus in dergelijke gevallen IsValueCreated wordt geretourneerd false.

  • Als de modus is LazyThreadSafetyMode.PublicationOnly, wordt met de eerste thread die de initialisatiefunctie (of de parameterloze constructor) wordt uitgevoerd, de waarde voor het Lazy<T> exemplaar gemaakt. Als met de initialisatiefunctie een uitzondering op de ene thread wordt gegenereerd, kunnen andere threads nog steeds proberen het Lazy<T> exemplaar te initialiseren. Totdat de waarde is gemaakt, retourneert IsValueCreatedde false eigenschap .

Van toepassing op

Zie ook