StartNew Method (Action)

TaskFactory.StartNew Method (Action)

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

Creates and starts a Task.

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

public Task StartNew(
	Action action


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

Return Value

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


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

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.

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 TaskCreationOptions?

TaskCreationOptions.AttachedToParent | TaskCreationOptions.PreferFairness,

// Which TaskContinuationOptions?

TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.PreferFairness);




// Do Work.


' Visual Basic

' Using the default TaskFactory


' Do Work.

End Sub)

' Using a custom TaskFactory

Dim myFactory As New TaskFactory(

' Which TaskCreationOptions?

TaskCreationOptions.AttachedToParentOr TaskCreationOptions.PreferFairness,

' Which TaskContinuationOptions?

TaskContinuationOptions.ExecuteSynchronouslyOr TaskContinuationOptions.PreferFairness)



// Do Work.

End Sub)

Windows Phone OS

Supported in: 8.1, 8.0

© 2018 Microsoft