Lazy<T> Constructor (Func<T>, Boolean)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function and initialization mode are used.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- valueFactory
- Type: System.Func<T>
The delegate that is invoked to produce the lazily initialized value when it is needed.
- isThreadSafe
- Type: System.Boolean
true to make this instance usable concurrently by multiple threads; false to make this instance usable by only one thread at a time.
| Exception | Condition |
|---|---|
| ArgumentNullException | valueFactory is null. |
The thread safety mode of a Lazy<T> instance that is created by using this constructor is LazyThreadSafetyMode.ExecutionAndPublication if isThreadSafe is true; otherwise, the mode is LazyThreadSafetyMode.None. The thread safety mode describes the behavior when multiple threads try to initialize the Lazy<T> instance.
To specify the LazyThreadSafetyMode.PublicationOnly mode, use the Lazy<T>(Func<T>, LazyThreadSafetyMode) or Lazy<T>(LazyThreadSafetyMode) constructor.
Exceptions that are thrown by valueFactory are cached. For more information, see the System.Threading.LazyThreadSafetyMode enumeration.