Partager via


Task.Start Méthode

Définition

Démarre Task.

Surcharges

Start()

Démarre la Task, en planifiant son exécution sur le TaskScheduler actuel.

Start(TaskScheduler)

Démarre la Task, en planifiant son exécution sur le TaskScheduler spécifié.

Start()

Démarre la Task, en planifiant son exécution sur le TaskScheduler actuel.

public:
 void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()

Exceptions

L’instance Task a été supprimée.

La Task n’est pas dans un état valide pour être démarrée. Elle peut avoir déjà été démarrée, exécutée ou annulée, ou créée d’une manière qui ne prend pas en charge la planification directe.

Exemples

L’exemple suivant appelle le Task(Action) constructeur pour instancier un nouvel Task objet qui affiche son ID de tâche et son ID de thread managé, puis exécute une boucle. Il appelle ensuite la Start méthode pour exécuter la tâche. Étant donné qu’il s’agit d’une application console, l’appel à la Wait méthode est nécessaire pour empêcher l’application de se terminer avant l’exécution de la tâche.

using System;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var t = new Task( () => { Console.WriteLine("Task {0} running on thread {1}",
                                                  Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                                for (int ctr = 1; ctr <= 10; ctr++)
                                   Console.WriteLine("   Iteration {0}", ctr); } 
                        );
      t.Start();
      t.Wait();   
   }
}
// The example displays output like the following:
//     Task 1 running on thread 3
//        Iteration 1
//        Iteration 2
//        Iteration 3
//        Iteration 4
//        Iteration 5
//        Iteration 6
//        Iteration 7
//        Iteration 8
//        Iteration 9
//        Iteration 10
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t As New Task(Sub()
                           Console.WriteLine("Task {0} running on thread {1}",
                                             Task.CurrentId, Thread.CurrentThread.ManagedThreadId )
                           For ctr As Integer = 1 To 10
                              Console.WriteLine("   Iteration {0}", ctr)
                           Next   
                        End Sub)
      t.Start
      t.Wait()   
   End Sub
End Module
' The example displays output like the following:
'     Task 1 running on thread 3
'        Iteration 1
'        Iteration 2
'        Iteration 3
'        Iteration 4
'        Iteration 5
'        Iteration 6
'        Iteration 7
'        Iteration 8
'        Iteration 9
'        Iteration 10

Remarques

Une tâche peut être démarrée et exécutée une seule fois. Toutes les tentatives de planification d’une deuxième tâche entraînent une exception.

Il Start est utilisé pour exécuter une tâche créée en appelant l’un des Task constructeurs. En règle générale, vous effectuez cette opération lorsque vous devez séparer la création de la tâche de son exécution, par exemple lorsque vous exécutez des tâches conditionnellement que vous avez créées. Pour le cas le plus courant dans lequel vous n’avez pas besoin de séparer l’instanciation des tâches à partir de l’exécution, nous vous recommandons d’appeler une surcharge du ou TaskFactory.StartNew de la Task.Run méthode.

Pour plus d’informations sur la gestion des exceptions levées par les opérations de tâche, consultez Gestion des exceptions.

Voir aussi

S’applique à

Start(TaskScheduler)

Démarre la Task, en planifiant son exécution sur le TaskScheduler spécifié.

public:
 void Start(System::Threading::Tasks::TaskScheduler ^ scheduler);
public void Start (System.Threading.Tasks.TaskScheduler scheduler);
member this.Start : System.Threading.Tasks.TaskScheduler -> unit
Public Sub Start (scheduler As TaskScheduler)

Paramètres

scheduler
TaskScheduler

TaskScheduler avec lequel associer et exécuter cette tâche.

Exceptions

L'argument scheduler a la valeur null.

La Task n’est pas dans un état valide pour être démarrée. Elle peut avoir déjà été démarrée, exécutée ou annulée, ou créée d’une manière qui ne prend pas en charge la planification directe.

L’instance Task a été supprimée.

Le Planificateur n’a pas pu mettre cette tâche en file d’attente.

Remarques

Une tâche peut uniquement être démarrée et exécutée une seule fois. Toutes les tentatives de planification d’une deuxième tâche entraînent une exception.

Pour plus d’informations sur la gestion des exceptions levées par les opérations de tâche, consultez Gestion des exceptions.

Voir aussi

S’applique à