Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Task.Start méthode ()

 

Date de publication : novembre 2016

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

Espace de noms:   System.Threading.Tasks
Assembly:  mscorlib (dans mscorlib.dll)

public void Start()

Exception Condition
ObjectDisposedException

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

InvalidOperationException

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.

Une tâche peut être démarrée et exécutée une seule fois. Toute tentative de planifier une tâche une deuxième fois provoquera une exception.

Le Start est utilisé pour exécuter une tâche qui a été créée en appelant le Task constructeurs. En règle générale, cela lorsque vous avez besoin de séparer la création de la tâche à partir de son exécution, notamment lorsque vous exécutez conditionnellement des tâches que vous avez créé. Pour les cas les plus courants dans lesquels vous n’avez pas besoin séparer l’instanciation de tâches à partir de l’exécution, nous vous recommandons d’appeler une surcharge de la Task.Run ou TaskFactory.StartNew (méthode).

Pour plus d'informations sur la gestion des exceptions levées par des opérations de la tâche, consultez la page Gestion des exceptions (bibliothèque parallèle de tâches).

L’exemple suivant appelle la Task(Action) constructeur pour instancier un nouvel Task objet qui affiche sa tâche ID et l’ID de thread managé, puis exécute une boucle. Il appelle ensuite la Start méthode à exécuter la tâche. Puisqu’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 la tâche d’exécution.

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

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 4.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 5.0
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: