Lazy<T>.IsValueCreated Propriedade

Definição

Obtém um valor que indica se um valor foi criado para essa instância Lazy<T>.

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

Valor da propriedade

Boolean

true se um valor foi criado para essa instância Lazy<T>; caso contrário, false.

Comentários

Quando ocorre uma inicialização lenta para uma Lazy<T> instância, pode resultar na criação de um valor ou em uma exceção. Se uma exceção for gerada, o comportamento subsequente da instância dependerá se o Lazy<T> cache de exceção está em vigor. Se a Lazy<T> instância foi criada usando um construtor que não especifica uma função de inicialização, o cache de exceção não está em vigor. Uma tentativa subsequente de inicializar o Lazy<T> pode ter êxito e, após a inicialização bem-sucedida, a IsValueCreated propriedade retorna true. Se a Lazy<T> instância foi criada com uma função de inicialização (especificada pelo valueFactory parâmetro do construtor), o Lazy<T> cache de exceção será controlado pelo modo de segurança do thread.

  • Se o modo for LazyThreadSafetyMode.ExecutionAndPublication ou LazyThreadSafetyMode.None, não haverá segunda chance de inicializar a Lazy<T> instância. Se ocorrer uma exceção e não for tratada na função de inicialização, essa exceção será armazenada em cache e gerada novamente em acessos subsequentes da Lazy<T>.Value propriedade. Nenhum valor será criado se uma exceção for gerada, portanto, nesses casos, IsValueCreated retornará false.

  • Se o modo for LazyThreadSafetyMode.PublicationOnly, o primeiro thread que conseguir executar a função de inicialização (ou o construtor sem parâmetros) criará o valor para a Lazy<T> instância. Se a função de inicialização gerar uma exceção em um thread, outros threads ainda poderão tentar inicializar a Lazy<T> instância. Até que o valor seja criado, a IsValueCreated propriedade retornará false.

Aplica-se a

Confira também