LazyInitializer Classe

Definição

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.

Ver também