Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Task.Wait, méthode (CancellationToken)

Attend la fin de l'exécution de la Task annulable.

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

public void Wait(
	CancellationToken cancellationToken
)

Paramètres

cancellationToken
Type : System.Threading.CancellationToken
CancellationToken à observer en attendant que la tâche se termine.

ExceptionCondition
OperationCanceledException

Le cancellationToken a été annulé.

ObjectDisposedException

Task a été supprimé.

AggregateException

Task a été annulé ou une exception a été levée pendant l'exécution de Task. Si la tâche a été annulée, AggregateException contient une OperationCanceledException dans sa collection InnerExceptions.

L'exemple suivant instancie un objet CancellationTokenSource et effectue une tâche qui appelle sa méthode Cancel pour demander une annulation. Il exécute une deuxième tâche qui entre une boucle longue. La méthode Wait est appelée dans un bloc try/catch et récupère le jeton d'annulation (objetCancellationToken ) de l'objet CancellationTokenSource. Etant donné que l'annulation a été demandée, l'appel à la méthode Wait lève une exception OperationCanceledException.


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

public class Example
{
   public static void Main()
   {
      CancellationTokenSource cts = new CancellationTokenSource();
      CancellationToken token = cts.Token;

      Task.Run( () => {
                   cts.Cancel();
                   if (token.IsCancellationRequested)
                      Console.WriteLine("Cancellation requested in Task {0}.", 
                                        Task.CurrentId);
                } , token);
      Task t2 = Task.Run( () => {
                             for (int ctr = 0; ctr <= Int32.MaxValue; ctr++) 
                             {}
                             Console.WriteLine("Task {0} finished.",
                                               Task.CurrentId);
                          } );
      try {
         t2.Wait(token);
      }   
      catch (OperationCanceledException) {
         Console.WriteLine("OperationCanceledException in Task {0}: The operation was cancelled.",
                           t2.Id);
      }
   }
}
// The example displays the following output:
//       Cancellation requested in Task 1.
//       OperationCanceledException in Task 2: The operation was cancelled.


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Pris en charge dans : 4

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft