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 usare EnsureInitialized per inizializzare un valore usando un valore booleano per tenere traccia del fatto che l'inizializzazione sia già avvenuta e un oggetto da usare 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 la necessità di allocare un'istanza dedicata di inizializzazione lazy, usando invece i riferimenti per assicurarsi che le destinazioni siano state inizializzate man mano che sono accessibili.
Metodi
EnsureInitialized<T>(T) |
Inizializza un tipo di riferimento di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato. |
EnsureInitialized<T>(T, Boolean, Object) |
Inizializza un tipo riferimento o valore di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato. |
EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inizializza un tipo di riferimento o di valore di destinazione utilizzando una funzione specificata se non è già stato inizializzato. |
EnsureInitialized<T>(T, Func<T>) |
Inizializza un tipo di riferimento di destinazione utilizzando una funzione specificata se non è già stato inizializzato. |
EnsureInitialized<T>(T, Object, Func<T>) |
Inizializza un tipo di riferimento di destinazione con una funzione specificata se non è già stato inizializzato. |
Si applica a
Thread safety
I metodi di LazyInitializer sono thread-safe e possono essere chiamati contemporaneamente da più thread.