Freigeben über


Lazy<T> Constructor (Func<T>, Boolean)

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

Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function and initialization mode are used.

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

Syntax

'Declaration
Public Sub New ( _
    valueFactory As Func(Of T), _
    isThreadSafe As Boolean _
)
public Lazy(
    Func<T> valueFactory,
    bool isThreadSafe
)

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.

Exceptions

Exception Condition
ArgumentNullException

valueFactory is nulla null reference (Nothing in Visual Basic).

Remarks

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.

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.