Task.WaitAny Metoda

Definicja

Czeka na dowolne z podanych Task obiektów, aby ukończyć wykonywanie.Waits for any of the provided Task objects to complete execution.

Przeciążenia

WaitAny(Task[], TimeSpan)

Czeka na dowolne z podanych Task obiektów, aby zakończyć wykonywanie w określonym przedziale czasu.Waits for any of the provided Task objects to complete execution within a specified time interval.

WaitAny(Task[], Int32, CancellationToken)

Czeka na dowolne z podanych Task obiektów, aby zakończyć wykonywanie w ciągu określonej liczby milisekund lub do czasu anulowania tokenu anulowania.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[], CancellationToken)

Czeka na dowolne z podanych Task obiektów do zakończenia wykonywania, chyba że oczekiwanie zostanie anulowane.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

WaitAny(Task[], Int32)

Czeka na dowolne z podanych Task obiektów, aby ukończyć wykonywanie w ciągu określonej liczby milisekund.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

WaitAny(Task[])

Czeka na dowolne z podanych Task obiektów, aby ukończyć wykonywanie.Waits for any of the provided Task objects to complete execution.

WaitAny(Task[], TimeSpan)

Czeka na dowolne z podanych Task obiektów, aby zakończyć wykonywanie w określonym przedziale czasu.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

Parametry

tasks
Task[]

Tablica Task wystąpień, na których należy czekać.An array of Task instances on which to wait.

timeout
TimeSpan

TimeSpanReprezentuje liczbę milisekund, które należy oczekiwać lub TimeSpan który reprezentuje-1 milisekund, aby czekać na czas nieokreślony.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Zwraca

Int32

Indeks ukończonego zadania w tasks argumencie Array lub-1, jeśli upłynął limit czasu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Wyjątki

Został Task usunięty.The Task has been disposed.

tasksArgument ma wartość null .The tasks argument is null.

TotalMillisecondsWłaściwość timeout argumentu jest liczbą ujemną inną niż-1, co oznacza nieskończony limit czasu.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. -lub--or- TotalMillisecondsWłaściwość timeout argumentu jest większa niż MaxValue .The TotalMilliseconds property of the timeout argument is greater than MaxValue.

tasksArgument zawiera element o wartości null.The tasks argument contains a null element.

Dotyczy

WaitAny(Task[], Int32, CancellationToken)

Czeka na dowolne z podanych Task obiektów, aby zakończyć wykonywanie w ciągu określonej liczby milisekund lub do czasu anulowania tokenu anulowania.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
Public Shared Function WaitAny (tasks As Task(), millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Integer

Parametry

tasks
Task[]

Tablica Task wystąpień, na których należy czekać.An array of Task instances on which to wait.

millisecondsTimeout
Int32

Liczba milisekund oczekiwania lub Infinite (-1) oczekiwania na czas nieokreślony.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken

A, CancellationToken aby obserwować czas oczekiwania na ukończenie zadania.A CancellationToken to observe while waiting for a task to complete.

Zwraca

Int32

Indeks ukończonego zadania w tasks argumencie Array lub-1, jeśli upłynął limit czasu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Wyjątki

Został Task usunięty.The Task has been disposed.

tasksArgument ma wartość null .The tasks argument is null.

millisecondsTimeout jest liczbą ujemną inną niż-1, co oznacza nieskończony limit czasu.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

tasksArgument zawiera element o wartości null.The tasks argument contains a null element.

cancellationTokenAnulowano.The cancellationToken was canceled.

Dotyczy

WaitAny(Task[], CancellationToken)

Czeka na dowolne z podanych Task obiektów do zakończenia wykonywania, chyba że oczekiwanie zostanie anulowane.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
Public Shared Function WaitAny (tasks As Task(), cancellationToken As CancellationToken) As Integer

Parametry

tasks
Task[]

Tablica Task wystąpień, na których należy czekać.An array of Task instances on which to wait.

cancellationToken
CancellationToken

A, CancellationToken aby obserwować czas oczekiwania na ukończenie zadania.A CancellationToken to observe while waiting for a task to complete.

Zwraca

Int32

Indeks ukończonego zadania w tasks argumencie Array.The index of the completed task in the tasks array argument.

Wyjątki

Został Task usunięty.The Task has been disposed.

tasksArgument ma wartość null .The tasks argument is null.

tasksArgument zawiera element o wartości null.The tasks argument contains a null element.

cancellationTokenAnulowano.The cancellationToken was canceled.

Dotyczy

WaitAny(Task[], Int32)

Czeka na dowolne z podanych Task obiektów, aby ukończyć wykonywanie w ciągu określonej liczby milisekund.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

Parametry

tasks
Task[]

Tablica Task wystąpień, na których należy czekać.An array of Task instances on which to wait.

millisecondsTimeout
Int32

Liczba milisekund oczekiwania lub Infinite (-1) oczekiwania na czas nieokreślony.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Zwraca

Int32

Indeks ukończonego zadania w tasks argumencie Array lub-1, jeśli upłynął limit czasu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Wyjątki

Został Task usunięty.The Task has been disposed.

tasksArgument ma wartość null .The tasks argument is null.

millisecondsTimeout jest liczbą ujemną inną niż-1, co oznacza nieskończony limit czasu.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

tasksArgument zawiera element o wartości null.The tasks argument contains a null element.

Dotyczy

WaitAny(Task[])

Czeka na dowolne z podanych Task obiektów, aby ukończyć wykonywanie.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

Parametry

tasks
Task[]

Tablica Task wystąpień, na których należy czekać.An array of Task instances on which to wait.

Zwraca

Int32

Indeks ukończonego Task obiektu w tasks tablicy.The index of the completed Task object in the tasks array.

Wyjątki

Został Task usunięty.The Task has been disposed.

tasksArgument ma wartość null .The tasks argument is null.

tasksArgument zawiera element o wartości null.The tasks argument contains a null element.

Przykłady

W poniższym przykładzie uruchamiane są pięć zadań, z których każde uśpienie jest przez co najmniej 50 milisekund lub maksymalnie 1 050 milisekund.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. WaitAnyNastępnie metoda czeka na zakończenie każdego z zadań.The WaitAny method then waits for any of the tasks to complete. W przykładzie przedstawiono identyfikator zadania zadania, które zakończyło się oczekiwanie, a także bieżący stan wszystkich zadań.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

Dotyczy