이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Lazy<T>.IsValueCreated 속성

2013-03-11

값이 이 Lazy<T> 인스턴스에 대해 만들어졌는지 여부를 나타내는 값을 가져옵니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)
public bool IsValueCreated { get; }

속성 값

형식: System.Boolean
Lazy<T> 인스턴스에 대해 값이 만들어졌으면 true이고, 그렇지 않으면 false입니다.

Lazy<T> 인스턴스에 대해 초기화 지연이 발생하면 값이 만들고 있나 예외가 발생할 수 있습니다. 예외가 발생한 경우 Lazy<T> 인스턴스의 이후 동작은 예외 캐싱이 유효한가 여부에 따라 달라집니다. 초기화 함수를 지정하지 않는 생성자를 사용하여 Lazy<T> 인스턴스를 만든 경우 예외 캐싱의 효과가 없습니다. 이후에 Lazy<T>을 초기화하려는 시도는 성공할 수도 있으며, 성공적 초기화 후에는 IsValueCreated 속성이 true를 반환합니다. Lazy<T> 인스턴스를 초기화 함수(Lazy<T> 생성자의 valueFactory 매개 변수로 지정)로 만든 경우 예외 캐싱이 스레드 안전 모드로 제어됩니다.

  • 모드가 LazyThreadSafetyMode.ExecutionAndPublication 또는 LazyThreadSafetyMode.None인 경우 Lazy<T> 인스턴스를 초기화할 두 번째 기회는 없습니다. 예외가 발생하고 초기화 함수에서 처리되지 않을 경우 해당 예외가 캐시되고 이후 Lazy<T>.Value 속성에 액세스할 때 다시 발생합니다. 예외가 발생하는 경우 값이 만들어지지 않으므로 이런 경우 IsValueCreatedfalse를 반환합니다.

  • 모드가 LazyThreadSafetyMode.PublicationOnly인 경우 초기화 함수(또는 기본 생성자)를 성공적으로 실행하는 첫 번째 스레드는 Lazy<T> 인스턴스의 값을 만듭니다. 초기화 함수가 한 스레드에서 예외를 발생시키면 다른 스레드는 여전히 Lazy<T> 인스턴스를 초기화하려고 시도할 수 있습니다. 값이 만들어질 때까지 IsValueCreated 속성은 false를 반환합니다.

Windows Phone OS

지원되는 버전: 8.0

이 정보가 도움이 되었습니까?
(1500자 남음)
© 2013 Microsoft. All rights reserved.