Поделиться через


Lazy<T>.IsValueCreated Свойство

Определение

Получает значение, которое показывает, создано ли значение для этого экземпляра Lazy<T>.

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

Значение свойства

Значение true, если значение создано для этого экземпляра Lazy<T>; в противном случае — значение false.

Комментарии

Отложенная инициализация для экземпляра Lazy<T> может привести к созданию значения или возникновению исключения. При возникновении исключения последующее поведение экземпляра Lazy<T> зависит от того, действует ли кэширование исключений. Lazy<T> Если экземпляр был создан с помощью конструктора, который не указывает функцию инициализации, кэширование исключений не действует. Последующая попытка инициализации Lazy<T> может завершиться успешной, а после успешной инициализации IsValueCreated свойство возвращает true. Lazy<T> Если экземпляр был создан с помощью функции инициализации (указанной Lazy<T> параметром valueFactory конструктора), кэширование исключений управляется режимом безопасности потока.

  • Если режим имеет значение LazyThreadSafetyMode.ExecutionAndPublication или LazyThreadSafetyMode.None, второй шанс инициализировать Lazy<T> экземпляр не существует. Если исключение возникает и не рассматривается в функции инициализации, это исключение кэшируется и повторно развертывается при последующих обращениях к свойству Lazy<T>.Value . При возникновении исключения значение не создается, поэтому в таких случаях IsValueCreated возвращается falseзначение .

  • Если режим имеет значение LazyThreadSafetyMode.PublicationOnly, первый поток, который успешно выполняет функцию инициализации (или конструктор без параметров), создает значение для экземпляра Lazy<T> . Если функция инициализации создает исключение в одном потоке, другие потоки по-прежнему могут попытаться инициализировать Lazy<T> экземпляр . Пока значение не будет создано, IsValueCreated свойство возвращает false.

Применяется к

См. также раздел