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

TaskStatus énumération

 

Date de publication : novembre 2016

Représente l'étape en cours dans le cycle de vie d'une Task.

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

public enum TaskStatus

Nom du membreDescription
Canceled

La tâche a accepté l'annulation en levant OperationCanceledException avec son propre CancellationToken, alors que l'état du jeton était défini comme signalé ou que le CancellationToken de la tâche était déjà signalé avant le début de l'exécution de la tâche. Pour plus d'informations, voir Annulation de tâches.

Created

La tâche a été initialisée mais n’a pas encore été planifiée.

Faulted

Tâche terminée suite à une exception non gérée.

RanToCompletion

L'exécution de la tâche s'est terminée avec succès.

Running

La tâche est en cours d'exécution mais n'est pas encore terminée.

WaitingForActivation

La tâche attend son activation et sa planification en interne par l'infrastructure .NET Framework.

WaitingForChildrenToComplete

L'exécution de la tâche est terminée et cette dernière attend implicitement la fin des tâches enfants associées.

WaitingToRun

L'exécution de la tâche a été planifiée mais n'a pas encore démarré.

Le Task.Status propriété retourne un membre de la TaskStatus énumération pour indiquer l’état actuel de la tâche.

L’exemple suivant crée des tâches de 20 qui fait une boucle jusqu'à ce qu’un compteur est incrémenté à une valeur de 2 millions. Lorsque les 10 premières tâches atteint 2 millions, le jeton d’annulation est annulé et toutes les tâches dont les compteurs n’ont pas atteint 2 millions sont annulées. L’exemple examine ensuite le Task.Status propriété de chaque tâche pour indiquer si la tâche a réussi ou annulés. Pour ceux qui ont été effectuées, il affiche la valeur retournée par la tâche.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var tasks = new List<Task<int>>();
      var source = new CancellationTokenSource();
      var token = source.Token;
      int completedIterations = 0;

      for (int n = 0; n <= 19; n++)
         tasks.Add(Task.Run( () => { int iterations = 0;
                                     for (int ctr = 1; ctr <= 2000000; ctr++) {
                                         token.ThrowIfCancellationRequested();
                                         iterations++;
                                     }
                                     Interlocked.Increment(ref completedIterations);
                                     if (completedIterations >= 10)
                                        source.Cancel();
                                     return iterations; }, token));

      Console.WriteLine("Waiting for the first 10 tasks to complete...\n");
      try  {
         Task.WaitAll(tasks.ToArray());
      }
      catch (AggregateException) {
         Console.WriteLine("Status of tasks:\n");
         Console.WriteLine("{0,10} {1,20} {2,14:N0}", "Task Id",
                           "Status", "Iterations");
         foreach (var t in tasks)
            Console.WriteLine("{0,10} {1,20} {2,14}",
                              t.Id, t.Status,
                              t.Status != TaskStatus.Canceled ? t.Result.ToString("N0") : "n/a");
      }
   }
}
// The example displays output like the following:
//    Waiting for the first 10 tasks to complete...
//    Status of tasks:
//
//       Task Id               Status     Iterations
//             1      RanToCompletion      2,000,000
//             2      RanToCompletion      2,000,000
//             3      RanToCompletion      2,000,000
//             4      RanToCompletion      2,000,000
//             5      RanToCompletion      2,000,000
//             6      RanToCompletion      2,000,000
//             7      RanToCompletion      2,000,000
//             8      RanToCompletion      2,000,000
//             9      RanToCompletion      2,000,000
//            10             Canceled            n/a
//            11             Canceled            n/a
//            12             Canceled            n/a
//            13             Canceled            n/a
//            14             Canceled            n/a
//            15             Canceled            n/a
//            16      RanToCompletion      2,000,000
//            17             Canceled            n/a
//            18             Canceled            n/a
//            19             Canceled            n/a
//            20             Canceled            n/a

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: