This documentation is archived and is not being maintained.

TaskFactory.StartNew Method (Action<Object>, Object, CancellationToken, TaskCreationOptions, TaskScheduler)

Creates and starts a task.

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

public Task StartNew(
	Action<Object> action,
	Object state,
	CancellationToken cancellationToken,
	TaskCreationOptions creationOptions,
	TaskScheduler scheduler


Type: System.Action<Object>
The action delegate to execute asynchronously.
Type: System.Object
An object containing data to be used by the action delegate.
Type: System.Threading.CancellationToken
The cancellation token that will be assigned to the new task.
Type: System.Threading.Tasks.TaskCreationOptions
A bitwise combination of the enumeration values that control the behavior of the created task.
Type: System.Threading.Tasks.TaskScheduler
The scheduler for the created task.

Return Value

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


The provided CancellationToken has already been disposed.


The action argument is null.


The scheduler argument is null.


The creationOptions argument specifies an invalid value.

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.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.