Windows Dev Center

TaskFactory.StartNew Method (Action)

Creates and starts a Task.

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

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.

ExceptionCondition
ArgumentNullException

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);

...

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

TaskCreationOptions.AttachedToParentOr TaskCreationOptions.PreferFairness,

' Which TaskContinuationOptions?

TaskContinuationOptions.ExecuteSynchronouslyOr TaskContinuationOptions.PreferFairness)

...

myFactory.StartNew(Sub()

// Do Work.

End Sub)

Windows Phone OS

Supported in: 8.1, 8.0

Show:
© 2015 Microsoft