LazyInitializer Classe
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.
Fornece rotinas de inicialização preguiçosas.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Herança
-
LazyInitializer
Exemplos
O exemplo seguinte demonstra como usar o EnsureInitialized para inicializar preguiçosamente um valor usando um valor booleano para acompanhar se a inicialização já ocorreu e um objeto a usar como bloqueio de exclusão mútua.
Dim _data As ExpensiveData = Nothing
Dim _dataInitialized As Boolean = False
Dim _dataLock As Object = Nothing
' ...
Dim name = LazyInitializer.EnsureInitialized(_data, _dataInitialized, _dataLock)
ExpensiveData _data = null;
bool _dataInitialized = false;
object _dataLock = new object();
// ...
ExpensiveData dataToUse = LazyInitializer.EnsureInitialized(ref _data, ref _dataInitialized, ref _dataLock);
Observações
Estas rotinas evitam a necessidade de alocar uma instância dedicada e de inicialização preguiçosa, usando em vez disso referências para garantir que os alvos foram inicializados à medida que são acedidos.
Métodos
| Name | Description |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inicializa uma referência ou tipo de valor alvo usando uma função especificada, caso ainda não tenha sido inicializada. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicializa uma referência de alvo ou tipo de valor com o seu construtor sem parâmetros, caso ainda não tenha sido inicializado. |
| EnsureInitialized<T>(T, Func<T>) |
Inicializa um tipo de referência alvo usando uma função especificada, caso ainda não tenha sido inicializada. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inicializa um tipo de referência alvo com uma função especificada se ainda não tiver sido inicializada. |
| EnsureInitialized<T>(T) |
Inicializa um tipo de referência alvo com o construtor sem parâmetros do tipo, caso ainda não tenha sido inicializado. |
Aplica-se a
Segurança de Thread
Os métodos de LazyInitializer são seguros para threads e podem ser chamados a partir de múltiplas threads em simultâneo.