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이거나, 무한 대기하도록 -1밀리초를 나타내는 TimeSpan입니다.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.

timeout 인수의 TotalMilliseconds 속성은 -1이 아닌 음수입니다. -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.

반환

tasks 배열에서 완료된 Task 개체의 인덱스입니다.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.

예제

다음 예제에서는 5 개의 작업을 각각 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. 모든 작업의 현재 상태 뿐만 아니라 대기를 종료 하는 작업의 작업 ID를 표시 합니다.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

적용 대상