Partager via


Lazy<T>.IsValueCreated Property

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Gets a value that indicates whether a value has been created for this Lazy<T> instance.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public ReadOnly Property IsValueCreated As Boolean
public bool IsValueCreated { get; }

Property Value

Type: System.Boolean
true if a value has been created for this Lazy<T> instance; otherwise, false.

Remarks

When lazy initialization occurs for a Lazy<T> instance, it may result in either a value being created or an exception being thrown. If an exception is thrown, subsequent behavior of the Lazy<T> instance depends on whether exception caching is in effect. If the Lazy<T> instance was created by using a constructor that does not specify an initialization function, then exception caching is not in effect. A subsequent attempt to initialize the Lazy<T> might succeed, and after successful initialization the IsValueCreated property returns true. If the Lazy<T> instance was created with an initialization function (specified by the valueFactory parameter of the Lazy<T> constructor), then exception caching is controlled by the thread safety mode.

  • If the mode is LazyThreadSafetyMode.ExecutionAndPublication or LazyThreadSafetyMode.None, there is no second chance to initialize the Lazy<T> instance. If an exception occurs and is unhandled in the initialization function, that exception is cached and rethrown on subsequent accesses of the Lazy<T>.Value property. No value is created if an exception is thrown, so in such cases IsValueCreated returns false.

  • If the mode is LazyThreadSafetyMode.PublicationOnly, the first thread that succeeds in running the initialization function (or the default constructor) creates the value for the Lazy<T> instance. If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy<T> instance. Until the value is created, the IsValueCreated property returns false.

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.