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.Wait méthode ()

 

Date de publication : août 2016

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

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

public void Wait()

Exception Condition
ObjectDisposedException

Task a été supprimé.

AggregateException

La tâche a été annulée. La collection AggregateException.InnerExceptions contient un objet TaskCanceledException.

ou

Une exception a été levée pendant l’exécution de la tâche. La collection AggregateException.InnerExceptions contient des informations sur l’exception ou les exceptions.

Waitest une méthode de synchronisation qui oblige le thread appelant à attendre la fin de la tâche en cours. Si l’exécution de la tâche en cours n’a pas démarré, la méthode Wait tente de supprimer la tâche du planificateur et de l’exécuter en ligne sur le thread actuel. S’il est impossible de le faire, ou si la tâche en cours a déjà commencé l’exécution, elle bloque le thread appelant jusqu'à ce que la tâche se termine. Pour plus d’informations, consultez Task.Wait and "Inlining" dans le blog programmation parallèle avec .NET.

Pour plus d’informations et obtenir un exemple, consultez Comment : attendre une ou plusieurs tâches.

L’exemple suivant démarre une tâche qui génère un million des entiers aléatoires compris entre 0 et 100 et calcule leur moyenne. L’exemple utilise le Wait pour s’assurer que la tâche se termine avant l’arrêt de l’application. Dans le cas contraire, car il s’agit d’une application console, l’exemple se terminerait avant que la tâche peut calculer et afficher la moyenne.

using System;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      Task t = Task.Run( () => {
                            Random rnd = new Random();
                            long sum = 0;
                            int n = 1000000;
                            for (int ctr = 1; ctr <= n; ctr++) {
                               int number = rnd.Next(0, 101);
                               sum += number;
                            }
                            Console.WriteLine("Total:   {0:N0}", sum);
                            Console.WriteLine("Mean:    {0:N2}", sum/n);
                            Console.WriteLine("N:       {0:N0}", n);   
                         } );
     t.Wait();
   }
}
// The example displays output similar to the following:
//       Total:   50,015,714
//       Mean:    50.02
//       N:       1,000,000

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: