LazyInitializer Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lusta inicializálási rutinokat biztosít.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Öröklődés
-
LazyInitializer
Példák
Az alábbi példa bemutatja, hogyan lehet az EnsureInitialized használatával lazán inicializálni egy értéket logikai érték használatával annak nyomon követésére, hogy az inicializálás már megtörtént-e, és egy objektumot, amelyet kölcsönös kizárási zárolásként kell használni.
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);
Megjegyzések
Ezek a rutinok nem igényelnek dedikált, lusta inicializálási példányt, ehelyett hivatkozásokkal biztosítják, hogy a célok inicializálása a hozzáférésük során történjen.
Metódusok
| Name | Description |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Egy célhivatkozást vagy értéktípust inicializál egy megadott függvény használatával, ha még nem inicializálta. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicializál egy célhivatkozást vagy értéktípust a paraméter nélküli konstruktorával, ha még nincs inicializálva. |
| EnsureInitialized<T>(T, Func<T>) |
Inicializál egy célhivatkozástípust egy megadott függvény használatával, ha még nem inicializálta. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inicializál egy célhivatkozástípust egy megadott függvénnyel, ha még nincs inicializálva. |
| EnsureInitialized<T>(T) |
Inicializál egy célhivatkozás-típust a típus paraméter nélküli konstruktorával, ha még nem inicializálták. |
A következőre érvényes:
Szálbiztonság
A metódusok LazyInitializer szálbiztosak, és egyidejűleg több szálból is meghívhatók.