Lazy<T>.IsValueCreated Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um valor que indica se um valor foi criado para esta Lazy<T> ocorrência.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
Valor de Propriedade
true se foi criado um valor para esta Lazy<T> instância; caso contrário, false.
Observações
Quando ocorre uma inicialização preguiçosa para uma Lazy<T> instância, pode resultar na criação de um valor ou no lançamento de uma exceção. Se uma exceção for lançada, o comportamento subsequente da Lazy<T> instância depende de se o cache de exceções está em vigor. Se a Lazy<T> instância foi criada usando um construtor que não especifica uma função de inicialização, então a cache de exceções não está em vigor. Uma tentativa subsequente de inicializar pode Lazy<T> ter sucesso e, após a inicialização bem-sucedida, a IsValueCreated propriedade devolve true. Se a Lazy<T> instância foi criada com uma função de inicialização (especificada pelo valueFactory parâmetro do Lazy<T> construtor), então a cache de exceções é controlada pelo modo de segurança da thread.
Se o modo for LazyThreadSafetyMode.ExecutionAndPublication ou LazyThreadSafetyMode.None, não há segunda oportunidade para 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 é armazenada em cache e relançada nos acessos subsequentes da Lazy<T>.Value propriedade. Nenhum valor é criado se uma exceção for lançada, pelo que nesses casos IsValueCreated retorna
false.Se o modo for LazyThreadSafetyMode.PublicationOnly, a primeira thread que consegue executar a função de inicialização (ou o construtor sem parâmetros) cria o valor para a Lazy<T> instância. Se a função de inicialização lançar uma exceção numa thread, as outras threads ainda podem tentar inicializar a Lazy<T> instância. Até que o valor seja criado, a IsValueCreated propriedade devolve
false.