Task.WaitAny Metoda

Definice

Počká na dokončení provádění všech zadaných Taskch objektů.Waits for any of the provided Task objects to complete execution.

Přetížení

WaitAny(Task[], Int32, CancellationToken)

Počká, až tyto Task objekty dokončí provádění během zadaného počtu milisekund nebo až do zrušení tokenu zrušení.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)

Počká, až tyto Task objekty dokončí provádění během zadaného časového intervalu.Waits for any of the provided Task objects to complete execution within a specified time interval.

WaitAny(Task[], Int32)

Počká, dokud žádný z poskytnutých Task objektů nedokončí provádění během zadaného počtu milisekund.Waits for any of the provided Task objects to complete execution within a specified number of milliseconds.

WaitAny(Task[], CancellationToken)

Počká, dokud některý z poskytnutých Task objektů nedokončí provádění, dokud se čekání nezruší.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

WaitAny(Task[])

Počká na dokončení provádění všech zadaných Taskch objektů.Waits for any of the provided Task objects to complete execution.

WaitAny(Task[], Int32, CancellationToken)

Počká, až tyto Task objekty dokončí provádění během zadaného počtu milisekund nebo až do zrušení tokenu zrušení.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

Parametry

tasks
Task[]

Pole instancí Task, na kterých se má čekat.An array of Task instances on which to wait.

millisecondsTimeout
Int32

Počet milisekund, po které se má počkat, nebo Infinite (-1) počkat na neomezenou dobu.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken

CancellationToken, která se má sledovat při čekání na dokončení úlohy.A CancellationToken to observe while waiting for a task to complete.

Návraty

Index dokončené úlohy v argumentu tasks pole nebo-1, pokud došlo k vypršení časového limitu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Výjimky

Task byla uvolněna.The Task has been disposed.

Argument tasks je null.The tasks argument is null.

millisecondsTimeout je záporné číslo jiné než-1, které představuje nekonečný časový limit.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Argument tasks obsahuje element s hodnotou null.The tasks argument contains a null element.

cancellationToken byla zrušena.The cancellationToken was canceled.

WaitAny(Task[], TimeSpan)

Počká, až tyto Task objekty dokončí provádění během zadaného časového intervalu.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[]

Pole instancí Task, na kterých se má čekat.An array of Task instances on which to wait.

timeout
TimeSpan

TimeSpan, která představuje počet milisekund čekání nebo TimeSpan reprezentující-1 milisekundy, které čekají na neomezenou dobu.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Návraty

Index dokončené úlohy v argumentu tasks pole nebo-1, pokud došlo k vypršení časového limitu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Výjimky

Task byla uvolněna.The Task has been disposed.

Argument tasks je null.The tasks argument is null.

Vlastnost TotalMilliseconds argumentu timeout je záporné číslo jiné než-1, které představuje nekonečný časový limit.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. -nebo--or- Vlastnost TotalMilliseconds argumentu timeout je větší než MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

Argument tasks obsahuje element s hodnotou null.The tasks argument contains a null element.

WaitAny(Task[], Int32)

Počká, dokud žádný z poskytnutých Task objektů nedokončí provádění během zadaného počtu 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[]

Pole instancí Task, na kterých se má čekat.An array of Task instances on which to wait.

millisecondsTimeout
Int32

Počet milisekund, po které se má počkat, nebo Infinite (-1) počkat na neomezenou dobu.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Návraty

Index dokončené úlohy v argumentu tasks pole nebo-1, pokud došlo k vypršení časového limitu.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Výjimky

Task byla uvolněna.The Task has been disposed.

Argument tasks je null.The tasks argument is null.

millisecondsTimeout je záporné číslo jiné než-1, které představuje nekonečný časový limit.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Argument tasks obsahuje element s hodnotou null.The tasks argument contains a null element.

WaitAny(Task[], CancellationToken)

Počká, dokud některý z poskytnutých Task objektů nedokončí provádění, dokud se čekání nezruší.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

Parametry

tasks
Task[]

Pole instancí Task, na kterých se má čekat.An array of Task instances on which to wait.

cancellationToken
CancellationToken

CancellationToken, která se má sledovat při čekání na dokončení úlohy.A CancellationToken to observe while waiting for a task to complete.

Návraty

Index dokončené úlohy v argumentu tasks poleThe index of the completed task in the tasks array argument.

Výjimky

Task byla uvolněna.The Task has been disposed.

Argument tasks je null.The tasks argument is null.

Argument tasks obsahuje element s hodnotou null.The tasks argument contains a null element.

cancellationToken byla zrušena.The cancellationToken was canceled.

WaitAny(Task[])

Počká na dokončení provádění všech zadaných Taskch objektů.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[]

Pole instancí Task, na kterých se má čekat.An array of Task instances on which to wait.

Návraty

Index dokončeného objektu Task v poli tasksThe index of the completed Task object in the tasks array.

Výjimky

Task byla uvolněna.The Task has been disposed.

Argument tasks je null.The tasks argument is null.

Argument tasks obsahuje element s hodnotou null.The tasks argument contains a null element.

Příklady

V následujícím příkladu se spustí pět úkolů, z nichž každý přejde do režimu spánku minimálně 50 milisekund nebo maximálně 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. Metoda WaitAny pak počká na dokončení všech úloh.The WaitAny method then waits for any of the tasks to complete. V příkladu se zobrazí ID úlohy, která ukončila čekání, a také aktuální stav všech úloh.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

Platí pro