Task.WaitAny Task.WaitAny Task.WaitAny Task.WaitAny Method

Définition

Attend la fin de l'exécution de l'un des objets Task fournis.Waits for any of the provided Task objects to complete execution.

Surcharges

WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken)

Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié ou jusqu'à ce qu'un jeton d'annulation soit annulé.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds or until a cancellation token is cancelled.

WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan)

Attend la fin de l'exécution de n'importe lequel des objets Task fournis dans un intervalle de temps spécifié.Waits for any of the provided Task objects to complete execution within a specified time interval.

WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32)

Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken)

Attend la fin de l'exécution de l'un des objets Task fournis sauf si l'attente est annulée.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[])

Attend la fin de l'exécution de l'un des objets Task fournis.Waits for any of the provided Task objects to complete execution.

WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken) WaitAny(Task[], Int32, CancellationToken)

Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié ou jusqu'à ce qu'un jeton d'annulation soit annulé.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds or until a cancellation token is cancelled.

public:
 static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
static member WaitAny : System.Threading.Tasks.Task[] * int * System.Threading.CancellationToken -> int

Paramètres

tasks
Task[]

Tableau d'instances de Task sur lesquelles attendre.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

CancellationToken à observer en attendant qu'une tâche se termine.A CancellationToken to observe while waiting for a task to complete.

Retours

Index de la tâche achevée dans l'argument de tableau tasks ou -1, si le délai a expiré.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceptions

L'argument tasks a la valeur null.The tasks argument is null.

millisecondsTimeout est un nombre négatif différent de -1, qui représente un délai d’attente infini.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

L’argument tasks contient un élément Null.The tasks argument contains a null element.

cancellationToken a été annulé.The cancellationToken was canceled.

WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan) WaitAny(Task[], TimeSpan)

Attend la fin de l'exécution de n'importe lequel des objets Task fournis dans un intervalle de temps spécifié.Waits for any of the provided Task objects to complete execution within a specified time interval.

public:
 static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, TimeSpan timeout);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, TimeSpan timeout);
static member WaitAny : System.Threading.Tasks.Task[] * TimeSpan -> int
Public Shared Function WaitAny (tasks As Task(), timeout As TimeSpan) As Integer

Paramètres

tasks
Task[]

Tableau d'instances de Task sur lesquelles attendre.An array of Task instances on which to wait.

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

TimeSpan qui représente le nombre de millièmes de secondes à attendre ou TimeSpan qui représente -1 millième de seconde, pour attendre indéfiniment.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Retours

Index de la tâche achevée dans l'argument de tableau tasks ou -1, si le délai a expiré.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceptions

L'argument tasks a la valeur null.The tasks argument is null.

La propriété TotalMilliseconds de l’argument timeout est un nombre négatif autre que -1, qui représente un délai d'attente infini.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. - ou --or- La propriété TotalMilliseconds de l’argument timeout est supérieure à MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

L’argument tasks contient un élément Null.The tasks argument contains a null element.

WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32) WaitAny(Task[], Int32)

Attend la fin de l'exécution de l'un des objets Task fournis en un nombre de millisecondes spécifié.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

public:
 static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, int millisecondsTimeout);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout);
static member WaitAny : System.Threading.Tasks.Task[] * int -> int
Public Shared Function WaitAny (tasks As Task(), millisecondsTimeout As Integer) As Integer

Paramètres

tasks
Task[]

Tableau d'instances de Task sur lesquelles attendre.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Retours

Index de la tâche achevée dans l'argument de tableau tasks ou -1, si le délai a expiré.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceptions

L'argument tasks a la valeur null.The tasks argument is null.

millisecondsTimeout est un nombre négatif différent de -1, qui représente un délai d’attente infini.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

L’argument tasks contient un élément Null.The tasks argument contains a null element.

WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken) WaitAny(Task[], CancellationToken)

Attend la fin de l'exécution de l'un des objets Task fournis sauf si l'attente est annulée.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

public:
 static int WaitAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, System::Threading::CancellationToken cancellationToken);
public static int WaitAny (System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken);
static member WaitAny : System.Threading.Tasks.Task[] * System.Threading.CancellationToken -> int

Paramètres

tasks
Task[]

Tableau d'instances de Task sur lesquelles attendre.An array of Task instances on which to wait.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

CancellationToken à observer en attendant qu'une tâche se termine.A CancellationToken to observe while waiting for a task to complete.

Retours

Index de la tâche achevée dans l'argument de tableau tasks.The index of the completed task in the tasks array argument.

Exceptions

L'argument tasks a la valeur null.The tasks argument is null.

L’argument tasks contient un élément Null.The tasks argument contains a null element.

cancellationToken a été annulé.The cancellationToken was canceled.

WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[]) WaitAny(Task[])

Attend la fin de l'exécution de l'un des objets Task fournis.Waits for any of the provided Task objects to complete execution.

public:
 static int WaitAny(... cli::array <System::Threading::Tasks::Task ^> ^ tasks);
public static int WaitAny (params System.Threading.Tasks.Task[] tasks);
static member WaitAny : System.Threading.Tasks.Task[] -> int
Public Shared Function WaitAny (ParamArray tasks As Task()) As Integer

Paramètres

tasks
Task[]

Tableau d'instances de Task sur lesquelles attendre.An array of Task instances on which to wait.

Retours

Index de l’objet Task terminé dans le tableau tasks.The index of the completed Task object in the tasks array.

Exceptions

L'argument tasks a la valeur null.The tasks argument is null.

L’argument tasks contient un élément Null.The tasks argument contains a null element.

Exemples

L’exemple suivant démarre cinq tâches, chacune d’elles étant en veille pour un minimum de 50 millisecondes ou un maximum de 1 050 millisecondes.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. La WaitAny méthode attend ensuite que l’une des tâches se termine.The WaitAny method then waits for any of the tasks to complete. L’exemple affiche l’ID de tâche de la tâche qui a mis fin à l’attente, ainsi que l’état actuel de toutes les tâches.The example displays the task ID of the task that ended the wait, as well as the current status of all the tasks.

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

public class Example
{
   public static void Main()
   {
      Task[] tasks = new Task[5];
      for (int ctr = 0; ctr <= 4; ctr++) {
         int factor = ctr;
         tasks[ctr] = Task.Run(() => Thread.Sleep(factor * 250 + 50));
      }
      int index = Task.WaitAny(tasks);
      Console.WriteLine("Wait ended because task #{0} completed.",
                        tasks[index].Id);
      Console.WriteLine("\nCurrent Status of Tasks:");
      foreach (var t in tasks)
         Console.WriteLine("   Task {0}: {1}", t.Id, t.Status);
   }
}
// The example displays output like the following:
//       Wait ended because task #1 completed.
//
//       Current Status of Tasks:
//          Task 1: RanToCompletion
//          Task 2: Running
//          Task 3: Running
//          Task 4: Running
//          Task 5: Running
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim tasks(4) As Task
      For ctr As Integer = 0 To 4
         Dim factor As Integer = ctr
         tasks(ctr) = Task.Run(Sub() Thread.Sleep(factor * 250 + 50))
      Next
      Dim index As Integer = Task.WaitAny(tasks)

      Console.WriteLine("Wait ended because task #{0} completed.",
                        tasks(index).Id)
      Console.WriteLine()
      Console.WriteLine("Current Status of Tasks:")
      For Each t In tasks
         Console.WriteLine("   Task {0}: {1}", t.Id, t.Status)
      Next
   End Sub
End Module
' The example displays output like the following:
'       Wait ended because task #1 completed.
'
'       Current Status of Tasks:
'          Task 1: RanToCompletion
'          Task 2: Running
'          Task 3: Running
'          Task 4: Running
'          Task 5: Running

S’applique à