Task.WaitAny Método

Definição

Aguarda até que todos os objetos Task fornecidos tenham concluído a execução.Waits for any of the provided Task objects to complete execution.

Sobrecargas

WaitAny(Task[], Int32, CancellationToken)

Aguarda alguns dos objetos Task fornecidos concluírem a execução em um número especificado de milissegundos ou até que o token de cancelamento seja cancelado.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)

Aguarda algum dos objetos Task fornecidos concluir a execução em um intervalo especificado.Waits for any of the provided Task objects to complete execution within a specified time interval.

WaitAny(Task[], Int32)

Aguarda qualquer um dos objetos Task fornecidos concluírem a execução dentro de um número especificado de milissegundos.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

WaitAny(Task[], CancellationToken)

Aguarda até que os objetos Task fornecidos tenham concluído a execução, a menos que a espera seja cancelada.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

WaitAny(Task[])

Aguarda até que todos os objetos Task fornecidos tenham concluído a execução.Waits for any of the provided Task objects to complete execution.

WaitAny(Task[], Int32, CancellationToken)

Aguarda alguns dos objetos Task fornecidos concluírem a execução em um número especificado de milissegundos ou até que o token de cancelamento seja cancelado.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[]

Uma matriz de instâncias Task para espera.An array of Task instances on which to wait.

millisecondsTimeout
Int32

O número de milissegundos para aguardar ou Infinite (- 1) para aguardar indefinidamente.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken

Um CancellationToken a ser observado ao aguardar a conclusão da tarefa.A CancellationToken to observe while waiting for a task to complete.

Retornos

O índice da tarefa concluída no argumento da matriz tasks ou -1 se o tempo limite ocorreu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceções

O Task foi descartado.The Task has been disposed.

O argumento tasks é null.The tasks argument is null.

millisecondsTimeout é um número negativo diferente de -1, que representa um tempo limite infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

O argumento tasks contém um elemento nulo.The tasks argument contains a null element.

O cancellationToken foi cancelado.The cancellationToken was canceled.

WaitAny(Task[], TimeSpan)

Aguarda algum dos objetos Task fornecidos concluir a execução em um intervalo 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[]

Uma matriz de instâncias Task para espera.An array of Task instances on which to wait.

timeout
TimeSpan

Um TimeSpan que representa o número de milissegundos para aguardar ou um TimeSpan que representa -1 milissegundos para aguardar indefinidamente.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Retornos

O índice da tarefa concluída no argumento da matriz tasks ou -1 se o tempo limite ocorreu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceções

O Task foi descartado.The Task has been disposed.

O argumento tasks é null.The tasks argument is null.

A propriedade TotalMilliseconds do argumento timeout é um número negativo diferente de -1, que representa um tempo limite infinito.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. - ou --or- A propriedade TotalMilliseconds do argumento timeout é maior que MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

O argumento tasks contém um elemento nulo.The tasks argument contains a null element.

WaitAny(Task[], Int32)

Aguarda qualquer um dos objetos Task fornecidos concluírem a execução dentro de um número especificado de milissegundos.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[]

Uma matriz de instâncias Task para espera.An array of Task instances on which to wait.

millisecondsTimeout
Int32

O número de milissegundos para aguardar ou Infinite (- 1) para aguardar indefinidamente.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Retornos

O índice da tarefa concluída no argumento da matriz tasks ou -1 se o tempo limite ocorreu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Exceções

O Task foi descartado.The Task has been disposed.

O argumento tasks é null.The tasks argument is null.

millisecondsTimeout é um número negativo diferente de -1, que representa um tempo limite infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

O argumento tasks contém um elemento nulo.The tasks argument contains a null element.

WaitAny(Task[], CancellationToken)

Aguarda até que os objetos Task fornecidos tenham concluído a execução, a menos que a espera seja cancelada.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[]

Uma matriz de instâncias Task para espera.An array of Task instances on which to wait.

cancellationToken
CancellationToken

Um CancellationToken a ser observado ao aguardar a conclusão da tarefa.A CancellationToken to observe while waiting for a task to complete.

Retornos

O índice da tarefa concluída no argumento da matriz tasks.The index of the completed task in the tasks array argument.

Exceções

O Task foi descartado.The Task has been disposed.

O argumento tasks é null.The tasks argument is null.

O argumento tasks contém um elemento nulo.The tasks argument contains a null element.

O cancellationToken foi cancelado.The cancellationToken was canceled.

WaitAny(Task[])

Aguarda até que todos os objetos Task fornecidos tenham concluído a execução.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[]

Uma matriz de instâncias Task para espera.An array of Task instances on which to wait.

Retornos

O índice do objeto Task concluído na matriz tasks.The index of the completed Task object in the tasks array.

Exceções

O Task foi descartado.The Task has been disposed.

O argumento tasks é null.The tasks argument is null.

O argumento tasks contém um elemento nulo.The tasks argument contains a null element.

Exemplos

O exemplo a seguir inicia cinco tarefas, cada uma das quais é suspenso por um mínimo de 50 milissegundos ou um máximo de 1.050 milissegundos.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. Em seguida, o método WaitAny aguarda que qualquer uma das tarefas seja concluída.The WaitAny method then waits for any of the tasks to complete. O exemplo exibe a ID da tarefa que terminou a espera, bem como o status atual de todas as tarefas.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

Aplica-se a