TaskFactory.StartNew Method (Action)

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

Creates and starts a Task.

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

Syntax

'Declaration
Public Function StartNew ( _
    action As Action _
) As Task
public Task StartNew(
    Action action
)

Parameters

  • action
    Type: System.Action
    The action delegate to execute asynchronously.

Return Value

Type: System.Threading.Tasks.Task
The started Task.

Exceptions

Exception Condition
ArgumentNullException

The exception that is thrown when the action argument is null.

Remarks

Calling StartNew is functionally equivalent to creating a Task using one of its constructors and then calling Start to schedule it for execution. However, unless creation and scheduling must be separated, StartNew is the recommended approach for both simplicity and performance.

Examples

This example demonstrates some common ways to use StartNew to commence asynchronous work.

// C#

// Using the default TaskFactory

Task.Factory.StartNew(() =>

{

// Do Work.

});

// Using a custom TaskFactory

TaskFactory myFactory = new TaskFactory(

// Which TaskScheduler? A null indicates that TaskScheduler.Current should be used.

null,

// Which TaskCreationOptions?

TaskCreationOptions.DetachedFromParent | TaskCreationOptions.PreferFairness,

// Which TaskContinuationOptions?

TaskContinuationOptions.DetachedFromParent | TaskContinuationOptions.PreferFairness);

...

myFactory.StartNew(delegate()

{

// Do Work.

});

' Visual Basic

' Using the default TaskFactory

Task.Factory.StartNew(Sub()

' Do Work.

End Sub)

' Using a custom TaskFactory

Dim myFactory As New TaskFactory(

' Which TaskScheduler? A null indicates that TaskScheduler.Current should be used.

null,

' Which TaskCreationOptions?

TaskCreationOptions.DetachedFromParent Or TaskCreationOptions.PreferFairness,

' Which TaskContinuationOptions?

TaskContinuationOptions.DetachedFromParent Or TaskContinuationOptions.PreferFairness)

...

myFactory.StartNew(Sub()

// Do Work.

End Sub)

Version Information

Silverlight

Supported in: 5

Platforms

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