StartNew Method (Func(Object, TResult), Object, TaskCreationOptions)

TaskFactory<TResult>.StartNew Method (Func<Object, TResult>, Object, TaskCreationOptions)

[ 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<TResult> StartNew(
	Func<Object, TResult> function,
	Object state,
	TaskCreationOptions creationOptions


Type: System.Func<Object, TResult>
A function delegate that returns the future result to be available through the task.
Type: System.Object
An object that contains data to be used by the function delegate.
Type: System.Threading.Tasks.TaskCreationOptions
One of the enumeration values that controls the behavior of the created task.

Return Value

Type: System.Threading.Tasks.Task<TResult>
The started task.


The function argument is null.


The creationOptions parameter specifies an invalid value.

Calling StartNew is functionally equivalent to creating a task by using one of the Task<TResult> constructors and then calling the Start method to schedule it for execution.

However, unless creation and scheduling must be separated, StartNew is the recommended approach for both simplicity and performance.

Windows Phone OS

Supported in: 8.1, 8.0

© 2017 Microsoft