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 (Int32)

 

Date de publication : août 2016

Attend la fin de l'exécution de la Task en un nombre de millisecondes spécifié.

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

public bool Wait(
	int millisecondsTimeout
)

Paramètres

millisecondsTimeout
Type: System.Int32

Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.

Valeur de retour

Type: System.Boolean

true si l'exécution de Task s'est terminée dans le délai imparti ; sinon, false.

Exception Condition
ObjectDisposedException

Task a été supprimé.

ArgumentOutOfRangeException

millisecondsTimeout est un nombre négatif différent de -1, qui représente un délai d’attente infini.

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.

Wait(Int32) is a synchronization method that causes the calling thread to wait for the current task instance to complete until one of the following occurs:

  • The task completes successfully.

  • The task itself is canceled or throws an exception. In this case, you handle an T:System.AggregateException exception. The P:System.AggregateException.InnerExceptions property contains details about the exception or exceptions.

  • The interval defined by millisecondsTimeout elapses. In this case, the current thread resumes execution and the method returns false.

The following example starts a task that generates five million random integers between 0 and 100 and computes their mean. The example uses the M:System.Threading.Tasks.Task.Wait(System.Int32) method to wait for the application to complete within 150 milliseconds. If the application completes normally, the task displays the sum and mean of the random numbers that it has generated. If the timeout interval has elapsed, the example displays a message before it terminates.

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 = 5000000;
                            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);   
                         } );
     if (! t.Wait(150))
        Console.WriteLine("The timeout interval elapsed.");
   }
}
// The example displays output similar to the following:
//       Total:   50,015,714
//       Mean:    50.02
//       N:       1,000,000
// Or it displays the following output:
//      The timeout interval elapsed.

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: