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

Определение

Ожидает завершения выполнения любого из указанных объектов Task.Waits for any of the provided Task objects to complete execution.

Перегрузки

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

Ожидает завершения выполнения всех указанных объектов Task в течение указанного числа миллисекунд или до отмены токена отмены.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)

Ожидает завершения выполнения любого из указанных отменяемых объектов Task в течение указанного временного интервала.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)

Ожидает завершения выполнения любого из указанных объектов Task в течение указанного числа миллисекунд.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)

Ожидает завершения выполнения всех указанных объектов Task, пока ожидание не будет отменено.Waits for any of the provided Task objects to complete execution unless the wait is cancelled.

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

Ожидает завершения выполнения любого из указанных объектов Task.Waits for any of the provided Task objects to complete execution.

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

Ожидает завершения выполнения всех указанных объектов Task в течение указанного числа миллисекунд или до отмены токена отмены.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

Параметры

tasks
Task[]

Массив экземпляров Task, завершения выполнения которых следует дождаться.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Время ожидания в миллисекундах или функция Infinite (-1) в случае неограниченного времени ожидания.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Токен CancellationToken, который нужно контролировать во время ожидания выполнения задачи.A CancellationToken to observe while waiting for a task to complete.

Возвраты

Индекс завершенной задачи в аргументе-массиве tasks или -1, если истекло время ожидания.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Исключения

Аргумент tasks имеет значение null.The tasks argument is null.

Параметр millisecondsTimeout является отрицательным числом, отличным от –1, что означает бесконечное время ожидания.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Аргумент tasks содержит элемент NULL.The tasks argument contains a null element.

Объект cancellationToken отменен.The cancellationToken was canceled.

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

Ожидает завершения выполнения любого из указанных отменяемых объектов Task в течение указанного временного интервала.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

Параметры

tasks
Task[]

Массив экземпляров Task, завершения выполнения которых следует дождаться.An array of Task instances on which to wait.

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Период TimeSpan, представляющий время ожидания в миллисекундах, или период TimeSpan, представляющий -1 миллисекунду для неограниченного ожидания.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Возвраты

Индекс завершенной задачи в аргументе-массиве tasks или -1, если истекло время ожидания.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Исключения

Аргумент tasks имеет значение null.The tasks argument is null.

Параметр TotalMilliseconds аргумента timeout является отрицательным числом, отличающимся от -1, которое представляет неограниченное время ожидания.The TotalMilliseconds property of the timeout argument is a negative number other than -1, which represents an infinite time-out. - или --or- Свойство timeout аргумента TotalMilliseconds больше чем MaxValue.The TotalMilliseconds property of the timeout argument is greater than MaxValue.

Аргумент tasks содержит элемент NULL.The tasks argument contains a null element.

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

Ожидает завершения выполнения любого из указанных объектов Task в течение указанного числа миллисекунд.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

Параметры

tasks
Task[]

Массив экземпляров Task, завершения выполнения которых следует дождаться.An array of Task instances on which to wait.

millisecondsTimeout
Int32 Int32 Int32 Int32

Время ожидания в миллисекундах или функция Infinite (-1) в случае неограниченного времени ожидания.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Возвраты

Индекс завершенной задачи в аргументе-массиве tasks или -1, если истекло время ожидания.The index of the completed task in the tasks array argument, or -1 if the timeout occurred.

Исключения

Аргумент tasks имеет значение null.The tasks argument is null.

Параметр millisecondsTimeout является отрицательным числом, отличным от –1, что означает бесконечное время ожидания.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Аргумент tasks содержит элемент NULL.The tasks argument contains a null element.

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

Ожидает завершения выполнения всех указанных объектов Task, пока ожидание не будет отменено.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

Параметры

tasks
Task[]

Массив экземпляров Task, завершения выполнения которых следует дождаться.An array of Task instances on which to wait.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Токен CancellationToken, который нужно контролировать во время ожидания выполнения задачи.A CancellationToken to observe while waiting for a task to complete.

Возвраты

Индекс завершенной задачи в аргументе-массиве tasks.The index of the completed task in the tasks array argument.

Исключения

Аргумент tasks имеет значение null.The tasks argument is null.

Аргумент tasks содержит элемент NULL.The tasks argument contains a null element.

Объект cancellationToken отменен.The cancellationToken was canceled.

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

Ожидает завершения выполнения любого из указанных объектов Task.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

Параметры

tasks
Task[]

Массив экземпляров Task, завершения выполнения которых следует дождаться.An array of Task instances on which to wait.

Возвраты

Индекс завершенного объекта Task в массиве tasks.The index of the completed Task object in the tasks array.

Исключения

Аргумент tasks имеет значение null.The tasks argument is null.

Аргумент tasks содержит элемент NULL.The tasks argument contains a null element.

Примеры

В следующем примере запускается пять задач, каждый из которых находится в состоянии не менее 50 миллисекунд или не более 1 050 миллисекунд.The following example launches five tasks, each of which sleeps for a minimum of 50 milliseconds or a maximum of 1,050 milliseconds. Затем метод WaitAny ожидает завершения любой из задач.The WaitAny method then waits for any of the tasks to complete. В примере отображается идентификатор задачи, которая завершила ожидание, а также текущее состояние всех задач.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

Применяется к