Task.Start Méthode

Définition

Démarre Task.Starts the Task.

Surcharges

Start()

Démarre la Task, en planifiant son exécution sur le TaskScheduler actuel.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Démarre la Task, en planifiant son exécution sur le TaskScheduler spécifié.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

Démarre la Task, en planifiant son exécution sur le TaskScheduler actuel.Starts the Task, scheduling it for execution to the current TaskScheduler.

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

Exceptions

L’instance Task a été supprimée.The Task instance has been disposed.

La Task n’est pas dans un état valide pour être démarrée.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Exemples

L’exemple suivant appelle le constructeur Task(Action) pour instancier un nouvel objet Task qui affiche son ID de tâche et son ID de thread managé, puis exécute une boucle.The following example calls the Task(Action) constructor to instantiate a new Task object that displays its task ID and managed thread ID and then executes a loop. Il appelle ensuite la méthode Start pour exécuter la tâche.It then calls the Start method to execute the task. Étant donné qu’il s’agit d’une application console, l’appel à la méthode Wait est nécessaire pour empêcher l’application de se terminer avant la fin de l’exécution de la tâche.Since this is a console app, the call to the Wait method is necessary to prevent the app from terminating before the task finishes execution.

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.A task may be started and run only once. Toute tentative de planification d’une tâche une deuxième fois entraîne une exception.Any attempts to schedule a task a second time will result in an exception.

Le Start est utilisé pour exécuter une tâche qui a été créée en appelant l’un des constructeurs Task.The Start is used to execute a task that has been created by calling one of the Task constructors. En règle générale, vous procédez ainsi 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 que vous avez créées de manière conditionnelle.Typically, you do this when you need to separate the task's creation from its execution, such as when you conditionally execute tasks that you've created. Pour le cas le 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 méthode Task.Run ou TaskFactory.StartNew.For the more common case in which you don't need to separate task instantiation from execution, we recommend that you call an overload of the Task.Run or TaskFactory.StartNew method.

Pour plus d’informations sur la gestion des exceptions levées par les opérations de tâche, consultez gestion des exceptions.For information on handling exceptions thrown by task operations, see Exception Handling.

Voir aussi

Start(TaskScheduler)

Démarre la Task, en planifiant son exécution sur le TaskScheduler spécifié.Starts the Task, scheduling it for execution to the specified 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 avec lequel associer et exécuter cette tâche.The TaskScheduler with which to associate and execute this task.

Exceptions

L'argument scheduler a la valeur null.The scheduler argument is null.

La Task n’est pas dans un état valide pour être démarrée.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

L’instance Task a été supprimée.The Task instance has been disposed.

Le Planificateur n’a pas pu mettre cette tâche en file d’attente.The scheduler was unable to queue this task.

Remarques

Une tâche ne peut être démarrée et exécutée qu’une seule fois.A task may only be started and run only once. Toute tentative de planification d’une tâche une deuxième fois entraîne une exception.Any attempts to schedule a task a second time will result in an exception.

Pour plus d’informations sur la gestion des exceptions levées par les opérations de tâche, consultez gestion des exceptions.For information on handling exceptions thrown by task operations, see Exception Handling.

Voir aussi

S’applique à