TaskFactory<TResult>.StartNew Method (Func<Object, TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates and starts a task.
Assembly: mscorlib (in mscorlib.dll)
public Task<TResult> StartNew(
Func<Object, TResult> function,
Object state,
CancellationToken cancellationToken,
TaskCreationOptions creationOptions,
TaskScheduler scheduler
)
Parameters
- function
- Type: System.Func<Object, TResult>
A function delegate that returns the future result to be available through the task.
- state
- Type: System.Object
An object that contains data to be used by the function delegate.
- cancellationToken
- Type: System.Threading.CancellationToken
The cancellation token that will be assigned to the new task.
- creationOptions
- Type: System.Threading.Tasks.TaskCreationOptions
One of the enumeration values that controls the behavior of the created task.
- scheduler
- Type: System.Threading.Tasks.TaskScheduler
The task scheduler that is used to schedule the created task.
| Exception | Condition |
|---|---|
| ObjectDisposedException | The cancellation token source that createdcancellationToken has already been disposed. |
| ArgumentNullException | The function argument is null. -or- The scheduler argument is null. |
| ArgumentOutOfRangeException | 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.