LazyInitializer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje opožděné inicializační rutiny.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Dědičnost
-
LazyInitializer
Příklady
Následující příklad ukazuje, jak použít EnsureInitialized k lazily inicializaci hodnoty pomocí logické hodnoty ke sledování, zda inicializace již nastala, a objekt, který se má použít jako vzájemné uzamčení vyloučení.
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);
Poznámky
Tyto rutiny nemusí přidělovat vyhrazenou, opožděnou inicializační instanci, místo toho pomocí odkazů zajistit, aby byly cíle inicializovány při přístupu.
Metody
| Name | Description |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inicializuje cílový odkaz nebo typ hodnoty pomocí zadané funkce, pokud ještě nebyl inicializován. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicializuje cílový odkaz nebo typ hodnoty pomocí konstruktoru bez parametrů, pokud ještě nebyl inicializován. |
| EnsureInitialized<T>(T, Func<T>) |
Inicializuje cílový typ odkazu pomocí zadané funkce, pokud ještě nebyl inicializován. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inicializuje cílový typ odkazu se zadanou funkcí, pokud ještě nebyl inicializován. |
| EnsureInitialized<T>(T) |
Inicializuje cílový typ odkazu pomocí konstruktoru bez parametrů typu, pokud ještě nebyl inicializován. |
Platí pro
Bezpečný přístup z více vláken
Metody LazyInitializer jsou bezpečné pro přístup z více vláken a mohou být volány z více vláken současně.