IsValueCreated Property
Collapse the table of content
Expand the table of content

Lazy<T>.IsValueCreated Property

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

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

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

public bool IsValueCreated { get; }

Property Value

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

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.

Windows Phone OS

Supported in: 8.1, 8.0

© 2017 Microsoft