Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase LazyInitializer

.NET Framework (current version)
 

Publicado: octubre de 2016

Proporciona rutinas de inicialización diferida.

Espacio de nombres:   System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Threading.LazyInitializer

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public static class LazyInitializer

NombreDescripción
System_CAPS_pubmethodSystem_CAPS_staticEnsureInitialized<T>(T)

Inicializa un tipo de referencia de destino con el constructor predeterminado de tipo si ya no se ha inicializado.

System_CAPS_pubmethodSystem_CAPS_staticEnsureInitialized<T>(T, Boolean, Object)

Inicializa un tipo de referencia o valor de destino con su constructor predeterminado si ya no se ha inicializado.

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

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

System_CAPS_pubmethodSystem_CAPS_staticEnsureInitialized<T>(T, Func<T>)

Inicializa un tipo de referencia de destino mediante una función especificada si ya no se ha inicializado.

Estas rutinas evitan la necesidad de asignar una instancia dedicada, inicialización diferida, en lugar de utilizar referencias para asegurarse de que los destinos se han inicializado tal como se tiene acceso.

En el ejemplo siguiente se muestra cómo utilizar EnsureInitialized para inicializar de forma diferida un valor utilizando un valor booleano para comprobar si ya ha ocurrido la inicialización y un objeto para utilizar como bloqueo de exclusión mutua.

ExpensiveData _data = null;
                     bool _dataInitialized = false;
                     object _dataLock = new object();
                  //  ...

                    ExpensiveData dataToUse = LazyInitializer.EnsureInitialized(ref _data, ref _dataInitialized, ref _dataLock);

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

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

Volver al principio
Mostrar: