TaskFactory.StartNew Method (Action)
[ 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)
Parameters
- action
- Type: System.Action
The action delegate to execute asynchronously.
| Exception | Condition |
|---|---|
| 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)