LazyInitializer LazyInitializer LazyInitializer LazyInitializer Class

Définition

Fournit des routines d'initialisation tardives.Provides lazy initialization routines.

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

Exemples

L’exemple suivant montre comment utiliser EnsureInitialized pour initialiser tardivement une valeur à l’aide d’une valeur booléenne pour déterminer si l’initialisation a déjà eu lieu et un objet à utiliser comme verrou d’exclusion mutuelle.The following example demonstrates how to use EnsureInitialized to lazily initialize a value using a Boolean value to track whether initialization has already happened and an object to use as the mutual exclusion lock.

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 à allouer une instance dédiée d’initialisation tardive, plutôt que d’utiliser des références pour s’assurer que les cibles ont été initialisées au fur et à mesure de leur accès.These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using references to ensure targets have been initialized as they are accessed.

Méthodes

EnsureInitialized<T>(T) EnsureInitialized<T>(T) EnsureInitialized<T>(T) 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é.Initializes a target reference type with the type's parameterless constructor if it hasn't already been initialized.

EnsureInitialized<T>(T, Func<T>) EnsureInitialized<T>(T, Func<T>) EnsureInitialized<T>(T, Func<T>) 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é.Initializes a target reference type by using a specified function if it hasn't already been initialized.

EnsureInitialized<T>(T, Boolean, Object) EnsureInitialized<T>(T, Boolean, Object) EnsureInitialized<T>(T, Boolean, Object) 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é.Initializes a target reference or value type with its parameterless constructor if it hasn't already been initialized.

EnsureInitialized<T>(T, Object, Func<T>) EnsureInitialized<T>(T, Object, Func<T>) EnsureInitialized<T>(T, Object, Func<T>) 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é.Initializes a target reference type with a specified function if it has not already been initialized.

EnsureInitialized<T>(T, Boolean, Object, Func<T>) EnsureInitialized<T>(T, Boolean, Object, Func<T>) EnsureInitialized<T>(T, Boolean, Object, Func<T>) 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é.Initializes a target reference or value type by using a specified function if it hasn't already been initialized.

S’applique à

Cohérence de thread

Les méthodes de LazyInitializer sont thread-safe et peuvent être appelées à partir de plusieurs threads simultanément.The methods of LazyInitializer are thread-safe and may be called from multiple threads concurrently.

Voir aussi