Task<TResult> Constructor (Func<TResult>, CancellationToken, TaskCreationOptions)


Initializes a new Task<TResult> with the specified function and creation options.

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

public Task(
	Func<TResult> function,
	CancellationToken cancellationToken,
	TaskCreationOptions creationOptions


Type: System.Func<TResult>

The delegate that represents the code to execute in the task. When the function has completed, the task's Result property will be set to return the result value of the function.

Type: System.Threading.CancellationToken

The CancellationToken that will be assigned to the new task.

Type: System.Threading.Tasks.TaskCreationOptions

The TaskCreationOptions used to customize the task's behavior.

Exception Condition

The CancellationTokenSource that created cancellationToken has already been disposed.


The creationOptions argument specifies an invalid value for TaskCreationOptions.


The function argument is null.

Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) method. The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 5.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top