LazyInitializer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.