Gets a value that indicates whether a value has been created for this Lazy`1 instance.
Documentation for this section has not yet been entered.
When lazy initialization occurs for a Lazy`1 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`1 instance depends on whether exception caching is in effect. If the Lazy`1 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`1 might succeed, and after successful initialization the Lazy`1.IsValueCreated property returns true. If the Lazy`1 instance was created with an initialization function (specified by the valueFactory parameter of the Lazy`1 constructor), then exception caching is controlled by the thread safety mode.
If the mode is System.Threading.LazyThreadSafetyMode.ExecutionAndPublication or System.Threading.LazyThreadSafetyMode.None, there is no second chance to initialize the Lazy`1 instance. If an exception occurs and is unhandled in the initialization function, that exception is cached and rethrown on subsequent accesses of the Lazy`1.Value property. No value is created if an exception is thrown, so in such cases Lazy`1.IsValueCreated returns false.
If the mode is System.Threading.LazyThreadSafetyMode.PublicationOnly, the first thread that succeeds in running the initialization function (or the default constructor) creates the value for the Lazy`1 instance. If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy`1 instance. Until the value is created, the Lazy`1.IsValueCreated property returns false.