Lazy<T>.IsValueCreated Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy dla tego Lazy<T> wystąpienia została utworzona wartość.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
Wartość właściwości
true
jeśli dla tego Lazy<T> wystąpienia utworzono wartość; w przeciwnym razie false
.
Uwagi
W przypadku wystąpienia inicjalizacji z opóźnieniem Lazy<T> może to spowodować utworzenie wartości lub zgłoszenie wyjątku. Jeśli zgłaszany jest wyjątek, kolejne zachowanie wystąpienia zależy od tego, czy buforowanie wyjątków Lazy<T> jest w mocy. Lazy<T> Jeśli wystąpienie zostało utworzone przy użyciu konstruktora, który nie określa funkcji inicjowania, buforowanie wyjątków nie działa. Kolejna próba zainicjowania Lazy<T> elementu może zakończyć się powodzeniem, a po pomyślnym zainicjowaniu IsValueCreated właściwość zwraca wartość true
. Lazy<T> Jeśli wystąpienie zostało utworzone za pomocą funkcji inicjowania (określonej przez valueFactory
parametr konstruktora), buforowanie wyjątków Lazy<T> jest kontrolowane przez tryb bezpieczeństwa wątku.
Jeśli tryb to LazyThreadSafetyMode.ExecutionAndPublication lub LazyThreadSafetyMode.None, nie ma drugiej szansy na zainicjowanie Lazy<T> wystąpienia. Jeśli wystąpi wyjątek i nie jest obsługiwane w funkcji inicjowania, ten wyjątek jest buforowany i ponownie wprowadzany przy kolejnych dostępach Lazy<T>.Value do właściwości. Nie jest tworzona żadna wartość, jeśli jest zgłaszany wyjątek, więc w takich przypadkach IsValueCreated zwraca wartość
false
.Jeśli tryb to LazyThreadSafetyMode.PublicationOnly, pierwszy wątek, który zakończy się powodzeniem podczas uruchamiania funkcji inicjowania (lub konstruktora bez parametrów) tworzy wartość dla Lazy<T> wystąpienia. Jeśli funkcja inicjowania zgłasza wyjątek w jednym wątku, inne wątki nadal mogą próbować zainicjować Lazy<T> wystąpienie. Do momentu utworzenia IsValueCreated wartości właściwość zwraca wartość
false
.