Lazy<T>.IsValueCreated Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
.