Sdílet prostřednictvím


Lazy<T>.IsValueCreated Vlastnost

Definice

Získá hodnotu, která označ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

Boolean

true pokud byla pro tuto Lazy<T> instanci vytvořena hodnota; falsev opačném případě .

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, jestli je ukládání výjimek do mezipaměti účinné. Lazy<T> Pokud byla instance vytvořena pomocí konstruktoru, který nezadá 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í vlastnost true. Lazy<T> Pokud byla instance vytvořena s inicializační funkcí (určenou parametrem valueFactory Lazy<T> konstruktoru), 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 na inicializaci Lazy<T> instance. Pokud dojde k výjimce a je neošetřená ve funkci inicializace, je tato výjimka uložena v mezipaměti a znovu se znovu vyvolá při následných přístupech vlastnosti Lazy<T>.Value . Není vytvořena žádná hodnota, pokud je vyvolán výjimka, takže v takových případech IsValueCreated vrátí falsehodnotu .

  • 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 na jednom vlákně, ostatní vlákna se stále můžou pokusit inicializovat Lazy<T> instanci. Dokud se hodnota nevytvořila, IsValueCreated vrátí falsevlastnost .

Platí pro

Viz také