Lazy<T>.IsValueCreated Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob ein Wert für diese Lazy<T>-Instanz erstellt wurde.

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

Eigenschaftswert

Boolean

true, wenn ein Wert für diese Lazy<T>-Instanz erstellt wurde, andernfalls false.

Hinweise

Wenn die lazy Initialisierung für eine Lazy<T> Instanz auftritt, kann es dazu führen, dass entweder ein Wert erstellt wird oder eine Ausnahme ausgelöst wird. Wenn eine Ausnahme ausgelöst wird, hängt das nachfolgende Verhalten der Lazy<T> Instanz davon ab, ob die Ausnahmespeicherung wirksam ist. Wenn die Lazy<T> Instanz mithilfe eines Konstruktors erstellt wurde, der keine Initialisierungsfunktion angibt, wird die Ausnahmespeicherung nicht wirksam. Ein anschließender Versuch, den Lazy<T> Erfolg zu initialisieren, und nach erfolgreicher Initialisierung gibt die IsValueCreated Eigenschaft zurück true. Wenn die Lazy<T> Instanz mit einer Initialisierungsfunktion (angegeben durch den Parameter des Lazy<T> Konstruktors) erstellt wurde, wird die Ausnahmespeicherung durch den valueFactory Threadsicherheitsmodus gesteuert.

  • Wenn der Modus vorhanden ist LazyThreadSafetyMode.ExecutionAndPublication oder LazyThreadSafetyMode.None, gibt es keine zweite Chance, die Lazy<T> Instanz zu initialisieren. Wenn eine Ausnahme auftritt und in der Initialisierungsfunktion nicht behandelt wird, wird diese Ausnahme zwischengespeichert und auf nachfolgenden Zugriffen der Lazy<T>.Value Eigenschaft erneut ausgelöst. Es wird kein Wert erstellt, wenn eine Ausnahme ausgelöst wird, sodass in solchen Fällen IsValueCreated eine Ausnahme zurückgegeben falsewird.

  • Wenn der Modus LazyThreadSafetyMode.PublicationOnlylautet, erstellt der erste Thread, der erfolgreich ist, um die Initialisierungsfunktion (oder den parameterlosen Konstruktor) auszuführen, den Wert für die Lazy<T> Instanz. Wenn die Initialisierungsfunktion eine Ausnahme auf einem Thread auslöst, können andere Threads weiterhin versuchen, die Lazy<T> Instanz zu initialisieren. Bis der Wert erstellt wird, gibt die IsValueCreated Eigenschaft zurück false.

Gilt für

Siehe auch