Udostępnij za pośrednictwem


Lazy<T>.IsValueCreated Właściwość

Definicja

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

Boolean

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.

Dotyczy

Zobacz też