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 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.