LazyInitializer Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia leniwe procedury inicjowania.
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 używany 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ą przydzielenia dedykowanego wystąpienia inicjowania z opóźnieniem, zamiast tego używają odwołań w celu zapewnienia, że obiekty docelowe zostały zainicjowane w miarę uzyskiwania dostępu do nich.
Metody
| Nazwa | Opis |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inicjuje docelowy typ odwołania lub wartości przy użyciu określonej funkcji, jeśli jeszcze nie został zainicjowany. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicjuje docelowy typ odwołania lub wartości z konstruktorem bez parametrów, jeśli jeszcze nie został zainicjowany. |
| EnsureInitialized<T>(T, Func<T>) |
Inicjuje docelowy typ odwołania przy użyciu określonej funkcji, jeśli jeszcze nie został zainicjowany. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inicjuje docelowy typ odwołania z określoną funkcją, jeśli jeszcze nie został zainicjowany. |
| EnsureInitialized<T>(T) |
Inicjuje docelowy typ odwołania z konstruktorem bez parametrów typu, jeśli jeszcze nie został zainicjowany. |
Dotyczy
Bezpieczeństwo wątkowe
Metody LazyInitializer są bezpieczne wątkowo i mogą być wywoływane z wielu wątków jednocześnie.