Partager via


LazyInitializer Classe

Définition

Fournit des routines d'initialisation tardives.

public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
Héritage
LazyInitializer

Exemples

L’exemple suivant montre comment utiliser EnsureInitialized pour initialiser automatiquement une valeur à l’aide d’une valeur booléenne pour suivre si l’initialisation a déjà eu lieu et qu’un objet à utiliser comme verrou d’exclusion mutuelle.

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

Remarques

Ces routines évitent d’avoir besoin d’allouer une instance dédiée d’initialisation différée, à la place en utilisant des références pour garantir que les cibles ont été initialisées à mesure qu’elles sont accessibles.

Méthodes

EnsureInitialized<T>(T)

Initialise un type référence cible avec le constructeur sans paramètre du type, s’il n’a pas déjà été initialisé.

EnsureInitialized<T>(T, Boolean, Object)

Initialise un type référence cible ou un type valeur avec son constructeur sans paramètre, s’il n’a pas déjà été initialisé.

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

Initialise un type référence cible ou un type valeur à l'aide d'une fonction spécifiée s'il n'a pas déjà été initialisé.

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

Initialise un type référence cible à l'aide d'une fonction spécifiée s'il n'a pas déjà été initialisé.

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

Initialise un type référence cible ou avec une fonction spécifiée s’il n’a pas déjà été initialisé.

S’applique à

Cohérence de thread

Les méthodes de LazyInitializer thread-safe peuvent être appelées simultanément à partir de plusieurs threads.

Voir aussi