LazyInitializer Classe
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.
Fornece rotinas de inicialização lentas.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Herança
-
LazyInitializer
Exemplos
O exemplo a seguir demonstra como usar EnsureInitialized para inicializar de forma preguiçosa um valor usando um valor booliano para acompanhar se a inicialização já aconteceu e um objeto a ser usado como o 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);
Comentários
Essas rotinas evitam a necessidade de alocar uma instância dedicada de inicialização lenta, em vez disso, usando referências para garantir que os destinos tenham sido inicializados à medida que são acessados.
Métodos
EnsureInitialized<T>(T) |
Inicializa um tipo de referência de destino com o construtor sem parâmetro de tipo se ele ainda não foi inicializado. |
EnsureInitialized<T>(T, Boolean, Object) |
Inicializa uma referência de destino ou um tipo de valor com seu construtor sem parâmetro se ele ainda não foi inicializado. |
EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inicializa um tipo de valor ou referência de destino usando uma função especificadas se ainda não tiver sido inicializada. |
EnsureInitialized<T>(T, Func<T>) |
Inicializa um tipo de referência de destino usando uma função especificadas se ainda não tiver sido inicializada. |
EnsureInitialized<T>(T, Object, Func<T>) |
Inicializará um tipo de referência de destino com uma função especificada se ainda não tiver sido inicializado. |
Aplica-se a
Acesso thread-safe
Os métodos são LazyInitializer thread-safe e podem ser chamados de vários threads simultaneamente.