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 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.