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

Definicja

Pobiera wartość wskazującą, czy dla tego wystąpienia Lazy<T> została utworzona wartość.Gets a value that indicates whether a value has been created for this Lazy<T> instance.

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 wystąpienia Lazy<T> została utworzona wartość; w przeciwnym razie false.true if a value has been created for this Lazy<T> instance; otherwise, false.

Uwagi

Po odinicjowaniu z opóźnieniem dla wystąpienia Lazy<T> może to spowodować utworzenie wartości lub zgłaszanie wyjątku.When lazy initialization occurs for a Lazy<T> instance, it may result in either a value being created or an exception being thrown. Jeśli wystąpi wyjątek, kolejne zachowanie wystąpienia Lazy<T> zależy od tego, czy buforowanie wyjątków jest włączone.If an exception is thrown, subsequent behavior of the Lazy<T> instance depends on whether exception caching is in effect. Jeśli wystąpienie Lazy<T> zostało utworzone przy użyciu konstruktora, który nie określa funkcji inicjującej, buforowanie wyjątków nie jest włączone.If the Lazy<T> instance was created by using a constructor that does not specify an initialization function, then exception caching is not in effect. Kolejna próba zainicjowania Lazy<T> może zakończyć się pomyślnie, a po pomyślnym zainicjowaniu Właściwość IsValueCreated zwróci true.A subsequent attempt to initialize the Lazy<T> might succeed, and after successful initialization the IsValueCreated property returns true. Jeśli wystąpienie Lazy<T> zostało utworzone przy użyciu funkcji inicjującej (określonej przez parametr valueFactory konstruktora Lazy<T>), buforowanie wyjątków jest kontrolowane przez tryb zabezpieczeń wątku.If the Lazy<T> instance was created with an initialization function (specified by the valueFactory parameter of the Lazy<T> constructor), then exception caching is controlled by the thread safety mode.

  • Jeśli tryb jest LazyThreadSafetyMode.ExecutionAndPublication lub LazyThreadSafetyMode.None, nie ma żadnej drugiej szansy do zainicjowania wystąpienia Lazy<T>.If the mode is LazyThreadSafetyMode.ExecutionAndPublication or LazyThreadSafetyMode.None, there is no second chance to initialize the Lazy<T> instance. Jeśli wystąpi wyjątek, który jest nieobsługiwany w funkcji inicjowania, ten wyjątek jest buforowany i ponownie zgłaszany przy kolejnych dostępach właściwości Lazy<T>.Value.If an exception occurs and is unhandled in the initialization function, that exception is cached and rethrown on subsequent accesses of the Lazy<T>.Value property. Żadna wartość nie jest tworzona, jeśli wyjątek jest zgłaszany, więc w takich przypadkach IsValueCreated zwraca false.No value is created if an exception is thrown, so in such cases IsValueCreated returns false.

  • Jeśli tryb jest LazyThreadSafetyMode.PublicationOnly, pierwszy wątek, który zakończy się powodzeniem (lub Konstruktor bez parametrów) tworzy wartość dla wystąpienia Lazy<T>.If the mode is LazyThreadSafetyMode.PublicationOnly, the first thread that succeeds in running the initialization function (or the parameterless constructor) creates the value for the Lazy<T> instance. Jeśli funkcja inicjowania zgłasza wyjątek w jednym wątku, inne wątki nadal mogą próbować zainicjować wystąpienie Lazy<T>.If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy<T> instance. Do momentu utworzenia wartości właściwość IsValueCreated zwraca false.Until the value is created, the IsValueCreated property returns false.

Dotyczy

Zobacz też