Compartir vía


LazyInitializer Clase

Definición

Proporciona rutinas de inicialización diferida.

public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
Herencia
LazyInitializer

Ejemplos

En el ejemplo siguiente se muestra cómo usar EnsureInitialized para inicializar de forma diferida un valor mediante un valor booleano para realizar un seguimiento de si ya se ha producido la inicialización y un objeto que se va a usar como bloqueo de exclusión mutua.

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);  

Comentarios

Estas rutinas evitan tener que asignar una instancia dedicada de inicialización diferida, en lugar de usar referencias para asegurarse de que se han inicializado los destinos a medida que se accede a ellos.

Métodos

EnsureInitialized<T>(T)

Inicializa un tipo de referencia de destino con su constructor sin parámetros si aún no se ha inicializado el destino.

EnsureInitialized<T>(T, Boolean, Object)

Inicializa un tipo de valor o referencia de destino con su constructor sin parámetros si aún no se ha inicializado.

EnsureInitialized<T>(T, Boolean, Object, Func<T>)

Inicializa un tipo de referencia de destino o tipo de valor utilizando la función especificada si aún no se ha inicializado.

EnsureInitialized<T>(T, Func<T>)

Inicializa un tipo de referencia de destino utilizando la función especificada si aún no se ha inicializado.

EnsureInitialized<T>(T, Object, Func<T>)

Inicializa un tipo de referencia de destino con una función especificada si aún no se ha inicializado.

Se aplica a

Seguridad para subprocesos

Los métodos de LazyInitializer son seguros para subprocesos y se pueden llamar desde varios subprocesos simultáneamente.

Consulte también