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

Definición

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.Waits for any of the provided Task objects to complete execution.

Sobrecargas

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

Espera a que cualquiera de los objetos Task proporcionados complete la ejecución dentro de un número especificado de milisegundos o hasta que se cancele un token de cancelación.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)

Espera a que se complete la ejecución de cualquier objeto Task proporcionado en un intervalo de tiempo especificado.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)

Espera a que cualquiera de los objetos Task que se hayan proporcionado complete su ejecución dentro de un número especificado de milisegundos.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)

Espera que se complete la ejecución de cualquiera de los objetos Task proporcionados, a menos que se cancele la espera.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

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

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.Waits for any of the provided Task objects to complete execution.

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

Espera a que cualquiera de los objetos Task proporcionados complete la ejecución dentro de un número especificado de milisegundos o hasta que se cancele un token de cancelación.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

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Número de milisegundos de espera o Infinite (-1) para esperar indefinidamente.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Un CancellationToken que se observará mientras se espera a que se complete la tarea.A CancellationToken to observe while waiting for a task to complete.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Excepciones

El argumento tasks es null.The tasks argument is null.

millisecondsTimeout es un número negativo distinto de-1, que representa un tiempo de espera infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

El argumento tasks contiene un elemento null.The tasks argument contains a null element.

cancellationToken se canceló.The cancellationToken was canceled.

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

Espera a que se complete la ejecución de cualquier objeto Task proporcionado en un intervalo de tiempo especificado.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

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.An array of Task instances on which to wait.

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Estructura TimeSpan que representa el número de milisegundos de espera o estructura TimeSpan que representa -1 milisegundos para esperar indefinidamente.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Excepciones

El argumento tasks es null.The tasks argument is null.

La propiedad TotalMilliseconds del argumento timeout es un número negativo distinto de -1 que representa un tiempo de espera infinito.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. O bien-or- La propiedad TotalMilliseconds del argumento timeout es mayor que MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

El argumento tasks contiene un elemento null.The tasks argument contains a null element.

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

Espera a que cualquiera de los objetos Task que se hayan proporcionado complete su ejecución dentro de un número especificado de milisegundos.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

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Número de milisegundos de espera o Infinite (-1) para esperar indefinidamente.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Excepciones

El argumento tasks es null.The tasks argument is null.

millisecondsTimeout es un número negativo distinto de-1, que representa un tiempo de espera infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

El argumento tasks contiene un elemento null.The tasks argument contains a null element.

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

Espera que se complete la ejecución de cualquiera de los objetos Task proporcionados, a menos que se cancele la espera.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

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.An array of Task instances on which to wait.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Un CancellationToken que se observará mientras se espera a que se complete la tarea.A CancellationToken to observe while waiting for a task to complete.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks.The index of the completed task in the tasks array argument.

Excepciones

El argumento tasks es null.The tasks argument is null.

El argumento tasks contiene un elemento null.The tasks argument contains a null element.

cancellationToken se canceló.The cancellationToken was canceled.

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

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.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

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.An array of Task instances on which to wait.

Devoluciones

Índice del objeto Task completado en la matriz tasks.The index of the completed Task object in the tasks array.

Excepciones

El argumento tasks es null.The tasks argument is null.

El argumento tasks contiene un elemento null.The tasks argument contains a null element.

Ejemplos

En el ejemplo siguiente se inician cinco tareas, cada una de las cuales entra en suspensión durante un mínimo de 50 milisegundos o un máximo de 1.050 milisegundos.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. Después WaitAny , el método espera a que se complete cualquiera de las tareas.The WaitAny method then waits for any of the tasks to complete. En el ejemplo se muestra el identificador de tarea de la tarea que finalizó la espera, así como el estado actual de todas las tareas.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

Se aplica a