LazyInitializer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
초기화 지연 루틴을 제공합니다.
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) |
아직 초기화되지 않은 경우 형식의 매개 변수가 없는 생성자를 사용하여 대상 참조 형식을 초기화합니다. |
EnsureInitialized<T>(T, Boolean, Object) |
아직 초기화되지 않은 경우 해당 매개 변수가 없는 생성자를 사용하여 대상 참조 또는 값 형식을 초기화합니다. |
EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 또는 값 형식을 초기화합니다. |
EnsureInitialized<T>(T, Func<T>) |
아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 형식을 초기화합니다. |
EnsureInitialized<T>(T, Object, Func<T>) |
아직 초기화되지 않은 경우 지정된 함수로 대상 참조 형식을 초기화합니다. |
적용 대상
스레드 보안
LazyInitializer 메서드는 스레드로부터 안전하며 여러 스레드에서 동시에 호출될 수 있습니다.