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 de inicialización diferida dedicada, en su lugar mediante referencias para asegurarse de que los destinos se han inicializado a medida que se acceden a ellos.

Métodos

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

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

EnsureInitialized<T>(T, Boolean, Object)

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

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

Inicializa un tipo de referencia de destino mediante una 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.

EnsureInitialized<T>(T)

Inicializa un tipo de referencia de destino con el constructor sin parámetros del tipo 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