LazyInitializer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.