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

Definizione

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti.Waits for any of the provided Task objects to complete execution.

Overload

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un numero specificato di millisecondi o finché un token di annullamento non viene annullato.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)

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un intervallo di tempo specificato.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)

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un numero specificato di millisecondi.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)

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti a meno che l'attesa non venga annullata.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti.Waits for any of the provided Task objects to complete execution.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un numero specificato di millisecondi o finché un token di annullamento non viene annullato.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

Parametri

tasks
Task[]

Matrice delle istanze di Task per cui attendere.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Numero di millisecondi di attesa oppure Infinite (-1) per un'attesa indefinita.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Oggetto CancellationToken da osservare durante l'attesa del completamento di un'attività.A CancellationToken to observe while waiting for a task to complete.

Restituisce

Indice dell'attività completata nell'argomento di matrice di tasks, oppure -1 in caso di timeout.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Eccezioni

Il valore dell'argomento tasks è null.The tasks argument is null.

millisecondsTimeout è un numero negativo diverso da -1, che rappresenta un timeout infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

L'argomento tasks contiene un elemento null.The tasks argument contains a null element.

Il parametro cancellationToken è stato annullato.The cancellationToken was canceled.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un intervallo di tempo specificato.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

Parametri

tasks
Task[]

Matrice delle istanze di Task per cui attendere.An array of Task instances on which to wait.

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Oggetto TimeSpan che rappresenta il numero di millisecondi di attesa oppure TimeSpan che rappresenta -1 millisecondi per un'attesa indefinita.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Restituisce

Indice dell'attività completata nell'argomento di matrice di tasks, oppure -1 in caso di timeout.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Eccezioni

Il valore dell'argomento tasks è null.The tasks argument is null.

La proprietà TotalMilliseconds dell'argomento timeout è un numero negativo diverso da -1 che rappresenta un timeout indeterminato.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. In alternativa-or- La proprietà TotalMilliseconds dell'argomento timeout è maggiore di MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

L'argomento tasks contiene un elemento null.The tasks argument contains a null element.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti entro un numero specificato di millisecondi.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

Parametri

tasks
Task[]

Matrice delle istanze di Task per cui attendere.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Numero di millisecondi di attesa oppure Infinite (-1) per un'attesa indefinita.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Restituisce

Indice dell'attività completata nell'argomento di matrice di tasks, oppure -1 in caso di timeout.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Eccezioni

Il valore dell'argomento tasks è null.The tasks argument is null.

millisecondsTimeout è un numero negativo diverso da -1, che rappresenta un timeout infinito.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

L'argomento tasks contiene un elemento null.The tasks argument contains a null element.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti a meno che l'attesa non venga annullata.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

Parametri

tasks
Task[]

Matrice delle istanze di Task per cui attendere.An array of Task instances on which to wait.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Oggetto CancellationToken da osservare durante l'attesa del completamento di un'attività.A CancellationToken to observe while waiting for a task to complete.

Restituisce

Indice dell'attività completata nell'argomento di matrice di tasks.The index of the completed task in the tasks array argument.

Eccezioni

Il valore dell'argomento tasks è null.The tasks argument is null.

L'argomento tasks contiene un elemento null.The tasks argument contains a null element.

Il parametro cancellationToken è stato annullato.The cancellationToken was canceled.

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

Attende il completamento dell'esecuzione di uno qualsiasi degli oggetti Task forniti.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

Parametri

tasks
Task[]

Matrice delle istanze di Task per cui attendere.An array of Task instances on which to wait.

Restituisce

Indice dell'oggetto Task completato nella matrice di tasks.The index of the completed Task object in the tasks array.

Eccezioni

Il valore dell'argomento tasks è null.The tasks argument is null.

L'argomento tasks contiene un elemento null.The tasks argument contains a null element.

Esempi

Nell'esempio seguente avvia cinque attività, ognuna delle quali rimane inattivo per un massimo di 1.050 millisecondi o almeno 50 millisecondi.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. Il WaitAny metodo quindi attende che uno delle attività da completare.The WaitAny method then waits for any of the tasks to complete. L'esempio mostra l'ID attività dell'attività che è terminata l'attesa, nonché lo stato corrente di tutte le attività.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

Si applica a