LazyInitializer Classe

Définition

Fournit des routines d’initialisation différées.

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 s’est déjà produite et 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’initialisation différée dédiée, à la place en utilisant des références pour s’assurer que les cibles ont été initialisées à mesure qu’elles sont accessibles.

Méthodes

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

Initialise une 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, Boolean, Object)

Initialise une 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, Func<T>)

Initialise un type de 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 de référence cible avec une fonction spécifiée s’il n’a pas déjà été initialisé.

EnsureInitialized<T>(T)

Initialise un type de référence cible avec le constructeur sans paramètre du type 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