Condividi tramite


Lazy<T>.IsValueCreated Proprietà

Definizione

Ottiene un valore che indica se è stato creato un valore per l'istanza di Lazy<T>.

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

Valore della proprietà

true se è stato creato un valore per l'istanza di Lazy<T>. In caso contrario, false.

Commenti

Quando si verifica l'inizializzazione differita per un'istanza Lazy<T> di , può comportare la creazione di un valore o la generazione di un'eccezione. Se viene generata un'eccezione, il comportamento successivo dell'istanza Lazy<T> dipende dal fatto che la memorizzazione nella cache delle eccezioni sia attiva. Se l'istanza Lazy<T> è stata creata usando un costruttore che non specifica una funzione di inizializzazione, la memorizzazione nella cache delle eccezioni non è effettiva. Un tentativo successivo di inizializzare l'oggetto Lazy<T> potrebbe avere esito positivo e, dopo l'inizializzazione riuscita, la IsValueCreated proprietà restituisce true. Se l'istanza Lazy<T> è stata creata con una funzione di inizializzazione (specificata dal valueFactory parametro del costruttore), la Lazy<T> memorizzazione nella cache delle eccezioni viene controllata dalla modalità thread safety.

  • Se la modalità è LazyThreadSafetyMode.ExecutionAndPublication o LazyThreadSafetyMode.None, non è possibile inizializzare l'istanza Lazy<T> . Se si verifica un'eccezione e non viene gestita nella funzione di inizializzazione, tale eccezione viene memorizzata nella cache e rigenerata per gli accessi successivi della Lazy<T>.Value proprietà. Se viene generata un'eccezione, non viene creato alcun valore, pertanto in questi casi IsValueCreated restituisce false.

  • Se la modalità è LazyThreadSafetyMode.PublicationOnly, il primo thread che ha esito positivo nell'esecuzione della funzione di inizializzazione (o del costruttore senza parametri) crea il valore per l'istanza Lazy<T> di . Se la funzione di inizializzazione genera un'eccezione in un thread, gli altri thread possono comunque provare a inizializzare l'istanza Lazy<T> . Finché il valore non viene creato, la IsValueCreated proprietà restituisce false.

Si applica a

Vedi anche