LazyInitializer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет отложенные подпрограммы инициализации.
public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
- Наследование
-
LazyInitializer
Примеры
В следующем примере показано, как использовать EnsureInitialized для неявного инициализации значения с помощью логического значения для отслеживания того, произошла ли инициализация и объект, используемый в качестве взаимной блокировки исключения.
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);
Комментарии
Эти подпрограммы не требуют выделения выделенного экземпляра отложенной инициализации, а не использования ссылок для обеспечения инициализации целевых объектов по мере доступа.
Методы
| Имя | Описание |
|---|---|
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Инициализирует целевую ссылку или тип значения с помощью указанной функции, если она еще не инициализирована. |
| EnsureInitialized<T>(T, Boolean, Object) |
Инициализирует целевую ссылку или тип значения с помощью конструктора без параметров, если он еще не инициализирован. |
| EnsureInitialized<T>(T, Func<T>) |
Инициализирует целевой ссылочный тип с помощью указанной функции, если она еще не инициализирована. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Инициализирует целевой ссылочный тип с указанной функцией, если она еще не инициализирована. |
| EnsureInitialized<T>(T) |
Инициализирует целевой ссылочный тип с помощью конструктора без параметров типа, если он еще не инициализирован. |
Применяется к
Потокобезопасность
Методы LazyInitializer являются потокобезопасными и могут вызываться из нескольких потоков одновременно.