Sdílet prostřednictvím


Lazy<T>.IsValueCreated Vlastnost

Definice

Získá hodnotu, která určuje, zda byla vytvořena hodnota pro tuto Lazy<T> instanci.

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

Hodnota vlastnosti

true pokud byla pro tuto Lazy<T> instanci vytvořena hodnota, falsejinak .

Poznámky

Při opožděné inicializaci instance Lazy<T> může dojít k vytvoření hodnoty nebo vyvolání výjimky. Pokud dojde k vyvolání výjimky, následné chování Lazy<T> instance závisí na tom, zda je ukládání výjimek do mezipaměti účinné. Lazy<T> Pokud byla instance vytvořena pomocí konstruktoru, který neurčí inicializační funkci, pak se ukládání výjimek do mezipaměti neprojeví. Následný pokus o inicializaci Lazy<T> může být úspěšný a po úspěšné inicializaci IsValueCreated vrátí truevlastnost . Lazy<T> Pokud byla instance vytvořena s inicializační funkcí (určenou parametrem valueFactory konstruktoruLazy<T>), je ukládání výjimek do mezipaměti řízeno režimem zabezpečení vlákna.

  • Pokud je LazyThreadSafetyMode.ExecutionAndPublication režim nebo LazyThreadSafetyMode.None, neexistuje žádná druhá šance inicializovat Lazy<T> instanci. Pokud dojde k výjimce a je neošetřená ve funkci inicializace, je tato výjimka uložena do mezipaměti a znovu se opakuje při následných přístupech k Lazy<T>.Value vlastnosti. Není vytvořena žádná hodnota, pokud je vyvolán výjimka, takže v takových případech IsValueCreated vrátí false.

  • Pokud je LazyThreadSafetyMode.PublicationOnlyrežim , první vlákno, které úspěšně spustí inicializační funkci (nebo konstruktor bez parametrů) vytvoří hodnotu instance Lazy<T> . Pokud inicializační funkce vyvolá výjimku v jednom vlákně, ostatní vlákna se stále mohou pokusit inicializovat Lazy<T> instanci. Dokud se hodnota nevytvořila, IsValueCreated vrátí falsevlastnost .

Platí pro

Viz také