Udostępnij za pośrednictwem


LazyInitializer Klasa

Definicja

Zapewnia procedury inicjowania z opóźnieniem.

public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
Dziedziczenie
LazyInitializer

Przykłady

W poniższym przykładzie pokazano, jak za pomocą metody EnsureInitialized zainicjować wartość przy użyciu wartości logicznej w celu śledzenia, czy zainicjowanie zostało już wykonane, a obiekt do użycia jako blokada wzajemnego wykluczania.

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);  

Uwagi

Te procedury unikają przydzielania dedykowanego wystąpienia inicjowania z opóźnieniem, zamiast tego używają odwołań w celu upewnienia się, że obiekty docelowe zostały zainicjowane w miarę uzyskiwania dostępu do nich.

Metody

EnsureInitialized<T>(T)

Inicjuje docelowy typ odwołania przy użyciu konstruktora bez parametrów typu, jeśli nie został jeszcze zainicjowany.

EnsureInitialized<T>(T, Boolean, Object)

Inicjuje docelowe odwołanie lub typ wartości za pomocą konstruktora bez parametrów, jeśli nie został jeszcze zainicjowany.

EnsureInitialized<T>(T, Boolean, Object, Func<T>)

Inicjuje docelowe odwołanie lub typ wartości przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

EnsureInitialized<T>(T, Func<T>)

Inicjuje docelowy typ odwołania przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

EnsureInitialized<T>(T, Object, Func<T>)

Inicjuje docelowy typ odwołania z określoną funkcją, jeśli nie został jeszcze zainicjowany.

Dotyczy

Bezpieczeństwo wątkowe

Metody LazyInitializer są bezpieczne wątkowo i mogą być wywoływane z wielu wątków jednocześnie.

Zobacz też