Lazy<T>.IsValueCreated 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
값이 이 Lazy<T> 인스턴스에 대해 만들어졌는지 여부를 나타내는 값을 가져옵니다.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
속성 값
값이 이 Lazy<T> 인스턴스에 대해 만들어졌으면 true
이고, 그렇지 않으면 false
입니다.
설명
인스턴스에 대해 Lazy<T> 지연 초기화가 발생하면 값이 생성되거나 예외가 throw될 수 있습니다. 예외가 throw되면 인스턴스의 Lazy<T> 후속 동작은 예외 캐싱이 적용되는지 여부에 따라 달라집니다. 초기화 함수를 Lazy<T> 지정하지 않는 생성자를 사용하여 인스턴스를 만든 경우 예외 캐싱이 적용되지 않습니다. 를 초기화 Lazy<T> 하려는 후속 시도가 성공할 수 있으며 초기화에 성공한 후 속성은 를 IsValueCreated 반환합니다 true
. 인스턴스가 Lazy<T> 초기화 함수(생성자의 매개 변수 Lazy<T> 에 의해 valueFactory
지정됨)로 만들어진 경우 예외 캐싱은 스레드 안전 모드에 의해 제어됩니다.
모드가 또는 LazyThreadSafetyMode.None이 LazyThreadSafetyMode.ExecutionAndPublication 면 인스턴스를 초기화 Lazy<T> 할 수 있는 두 번째 기회가 없습니다. 예외가 발생하고 초기화 함수에서 처리되지 않은 경우 해당 예외는 속성의 Lazy<T>.Value 후속 액세스에서 캐시되고 다시 throw됩니다. 예외가 throw되면 값이 만들어지지 않으므로 이러한 경우 를 반환
false
합니다IsValueCreated.모드가 이 LazyThreadSafetyMode.PublicationOnly면 초기화 함수(또는 매개 변수가 없는 생성자)를 실행하는 데 성공한 첫 번째 스레드가 인스턴스에 Lazy<T> 대한 값을 만듭니다. 초기화 함수가 한 스레드에서 예외를 throw하는 경우 다른 스레드는 인스턴스를 초기화 Lazy<T> 하려고 시도할 수 있습니다. 값을 만들 때까지 속성은 를 IsValueCreated 반환합니다
false
.
적용 대상
추가 정보
.NET