Leer en inglés

Compartir a través de


Task.WaitAny Método

Definición

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.

Sobrecargas

WaitAny(Task[], TimeSpan)

Espera a que se complete la ejecución de cualquier objeto Task proporcionado en un intervalo de tiempo especificado.

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.

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.

WaitAny(Task[], CancellationToken)

Espera que se complete la ejecución de cualquiera de los objetos Task proporcionados, a menos que se cancele la espera.

WaitAny(Task[])

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.

WaitAny(Task[], TimeSpan)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

Espera a que se complete la ejecución de cualquier objeto Task proporcionado en un intervalo de tiempo especificado.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, TimeSpan timeout);

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.

timeout
TimeSpan

Estructura TimeSpan que representa el número de milisegundos de espera o estructura TimeSpan que representa -1 milisegundos para esperar indefinidamente.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.

Excepciones

Se ha eliminado Task.

El argumento tasks es null.

La propiedad TotalMilliseconds del argumento timeout es un número negativo distinto de -1 que representa un tiempo de espera infinito.

O bien

La TotalMilliseconds propiedad del timeout argumento es mayor que Int32.MaxValue.

El argumento tasks contiene un elemento null.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], Int32, CancellationToken)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

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.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.

millisecondsTimeout
Int32

Número de milisegundos de espera o Infinite (-1) para esperar indefinidamente.

cancellationToken
CancellationToken

Un CancellationToken que se observará mientras se espera a que se complete la tarea.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.

Excepciones

Se ha eliminado Task.

El argumento tasks es null.

millisecondsTimeout es un número negativo distinto de-1, que representa un tiempo de espera infinito.

El argumento tasks contiene un elemento null.

cancellationToken se canceló.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], Int32)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

Espera a que cualquiera de los objetos Task que se hayan proporcionado complete su ejecución dentro de un número especificado de milisegundos.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, int millisecondsTimeout);

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.

millisecondsTimeout
Int32

Número de milisegundos de espera o Infinite (-1) para esperar indefinidamente.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks o -1 si se agotó el tiempo de espera.

Excepciones

Se ha eliminado Task.

El argumento tasks es null.

millisecondsTimeout es un número negativo distinto de-1, que representa un tiempo de espera infinito.

El argumento tasks contiene un elemento null.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[], CancellationToken)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

Espera que se complete la ejecución de cualquiera de los objetos Task proporcionados, a menos que se cancele la espera.

C#
public static int WaitAny (System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken);

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.

cancellationToken
CancellationToken

Un CancellationToken que se observará mientras se espera a que se complete la tarea.

Devoluciones

Índice de la tarea completada en la matriz especificada por el parámetro tasks.

Excepciones

Se ha eliminado Task.

El argumento tasks es null.

El argumento tasks contiene un elemento null.

cancellationToken se canceló.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WaitAny(Task[])

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

Espera a que se complete la ejecución de cualquiera de los objetos Task proporcionados.

C#
public static int WaitAny (params System.Threading.Tasks.Task[] tasks);

Parámetros

tasks
Task[]

Matriz de instancias de Task en las que se va a esperar.

Devoluciones

Índice del objeto Task completado en la matriz tasks.

Excepciones

Se ha eliminado Task.

El argumento tasks es null.

El argumento tasks contiene un elemento null.

Ejemplos

En el ejemplo siguiente se inician cinco tareas, cada una de las cuales se suspende durante un mínimo de 50 milisegundos o un máximo de 1050 milisegundos. A WaitAny continuación, el método espera a que se complete cualquiera de las tareas. 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.

C#
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

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0