Task.Start Méthode

Définition

Démarre le Task.

Surcharges

Nom Description
Start()

Démarre le Task, en le planifiant pour l’exécution vers l’actif TaskScheduler.

Start(TaskScheduler)

Démarre le Task, en le planifiant pour l’exécution sur le fichier spécifié TaskScheduler.

Start()

Démarre le Task, en le planifiant pour l’exécution vers l’actif TaskScheduler.

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

Exceptions

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

L’état Task n’est pas valide à démarrer. Elle a peut-être déjà été démarrée, exécutée ou annulée, ou elle a peut-être été 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 la fin de 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
open System.Threading
open System.Threading.Tasks

let t =
    new Task(fun () ->
        printfn $"Task {Task.CurrentId} running on thread {Thread.CurrentThread.ManagedThreadId}"

        for i = 1 to 10 do
            printfn $"   Iteration {i}")

t.Start()
t.Wait() |> ignore

// 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. Toute tentative de planification d’une tâche une deuxième fois entraîne une exception.

Il Start est utilisé pour exécuter une tâche qui a été créée en appelant l’un Task des constructeurs. En règle générale, vous devez séparer la création de la tâche par rapport à son exécution, par exemple lorsque vous exécutez des tâches de manière conditionnelle que vous avez créées. Pour le cas plus courant dans lequel vous n’avez pas besoin de séparer l’instanciation des tâches de l’exécution, nous vous recommandons d’appeler une surcharge de la 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 le Task, en le planifiant pour l’exécution sur le fichier spécifié TaskScheduler.

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 Auquel associer et exécuter cette tâche.

Exceptions

L’argument scheduler est null.

L’état Task n’est pas valide à démarrer. Elle a peut-être déjà été démarrée, exécutée ou annulée, ou elle a peut-être été 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. Toute tentative de planification d’une tâche une deuxième fois entraîne 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 à