LazyInitializer Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce routine di inizializzazione differita.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Ereditarietà
-
LazyInitializer
Esempio
Nell'esempio seguente viene illustrato come utilizzare EnsureInitialized per inizializzare in modo differito un valore usando un valore booleano per tenere traccia dell'inizializzazione già avvenuta e di un oggetto da utilizzare come blocco di esclusione reciproca.
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);
Commenti
Queste routine evitano di dover allocare un'istanza dedicata di inizializzazione differita, usando invece i riferimenti per garantire che le destinazioni siano state inizializzate durante l'accesso.
Metodi
| Nome | Descrizione |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inizializza un riferimento di destinazione o un tipo valore usando una funzione specificata se non è già stata inizializzata. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inizializza un riferimento di destinazione o un tipo valore con il relativo costruttore senza parametri se non è già stato inizializzato. |
| EnsureInitialized<T>(T, Func<T>) |
Inizializza un tipo riferimento di destinazione utilizzando una funzione specificata se non è già stata inizializzata. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inizializza un tipo riferimento di destinazione con una funzione specificata se non è già stato inizializzato. |
| EnsureInitialized<T>(T) |
Inizializza un tipo riferimento di destinazione con il costruttore senza parametri del tipo, se non è già stato inizializzato. |
Si applica a
Thread safety
I metodi di LazyInitializer sono thread-safe e possono essere chiamati da più thread contemporaneamente.