LazyInitializer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt verzögerte Initialisierungsroutinen bereit.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Vererbung
-
LazyInitializer
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie "EnsureInitialized" verwenden, um einen Wert mit einem booleschen Wert zu initialisieren, um nachzuverfolgen, ob die Initialisierung bereits erfolgt ist und ein Objekt als gegenseitige Ausschlusssperre verwendet werden soll.
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);
Hinweise
Diese Routinen vermeiden es, eine dedizierte, lazy-initialisierungsinstanz zuzuweisen, anstatt Verweise zu verwenden, um sicherzustellen, dass Ziele initialisiert wurden, da sie darauf zugreifen.
Methoden
EnsureInitialized<T>(T) |
Initialisiert einen Zielverweistyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde. |
EnsureInitialized<T>(T, Boolean, Object) |
Initialisiert einen Zielverweis- oder Werttyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde. |
EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Initialisiert einen Zielverweis- oder Werttyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde. |
EnsureInitialized<T>(T, Func<T>) |
Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde. |
EnsureInitialized<T>(T, Object, Func<T>) |
Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde. |
Gilt für
Threadsicherheit
Die Methoden LazyInitializer sind threadsicher und können gleichzeitig von mehreren Threads aufgerufen werden.