Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

LazyInitializer, classe

.NET Framework (current version)
 

Fournit des routines d'initialisation tardives.

Espace de noms:   System.Threading
Assembly:  mscorlib (dans mscorlib.dll)

System.Object
  System.Threading.LazyInitializer

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public static class LazyInitializer

NomDescription
System_CAPS_pubmethodSystem_CAPS_staticEnsureInitialized<T>(T)

Initialise un type référence cible avec le constructeur par défaut du type s'il n'a pas déjà été initialisé.

System_CAPS_pubmethodSystem_CAPS_staticEnsureInitialized<T>(T, Boolean, Object)

Initialise un type référence cible ou un type valeur avec son constructeur par défaut s'il n'a pas déjà été initialisé.

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

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

Ces routines évitent de devoir allouer une instance d'initialisation tardive dédiée et permet d'utiliser à la place des références pour vérifier que les cibles ont été initialisées lorsqu'on y accède.

L'exemple suivant montre comment utiliser EnsureInitialized pour initialiser tardivement une valeur à l'aide d'une valeur booléenne pour suivre si l'initialisation est déjà arrivée et un objet à utiliser comme verrou d'exclusion mutuelle.

ExpensiveData _data = null;
                     bool _dataInitialized = false;
                     object _dataLock = new object();
                  //  ...

                    ExpensiveData dataToUse = LazyInitializer.EnsureInitialized(ref _data, ref _dataInitialized, ref _dataLock);

Universal Windows Platform
Disponible depuis 4.5
.NET Framework
Disponible depuis 4.0
Portable Class Library
Pris en charge dans : portable .NET platforms
Windows Phone Silverlight
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1

Les méthodes de LazyInitializer sont thread-safe et peuvent être appelées en même temps depuis plusieurs threads.

Retour au début
Afficher: