Task.WaitAny 메서드

정의

제공된 Task 개체가 실행을 완료할 때까지 기다립니다.

오버로드

Name Description
WaitAny(Task[], TimeSpan)

제공된 Task 개체가 지정된 시간 간격 내에 실행을 완료할 때까지 기다립니다.

WaitAny(Task[], Int32, CancellationToken)

제공된 Task 개체가 지정된 시간(밀리초) 이내 또는 취소 토큰이 취소될 때까지 실행을 완료할 때까지 기다립니다.

WaitAny(Task[], Int32)

제공된 Task 개체가 지정된 시간(밀리초) 내에 실행을 완료할 때까지 기다립니다.

WaitAny(Task[], CancellationToken)

대기가 취소되지 않는 한 제공된 Task 개체의 실행이 완료될 때까지 기다립니다.

WaitAny(Task[])

제공된 Task 개체가 실행을 완료할 때까지 기다립니다.

WaitAny(Task[], TimeSpan)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

제공된 Task 개체가 지정된 시간 간격 내에 실행을 완료할 때까지 기다립니다.

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 배열입니다.

timeout
TimeSpan

TimeSpan 대기할 시간(밀리초) 또는 TimeSpan 무기한 대기할 -1 밀리초를 나타내는 A입니다.

반품

배열 인수에서 tasks 완료된 작업의 인덱스이거나 시간 제한이 발생한 경우 -1.

예외

Task 삭제되었습니다.

인수는 tasks .입니다 null.

인수의 TotalMilliseconds 속성은 timeout 무한 제한 시간을 나타내는 -1 이외의 음수입니다.

-또는-

TotalMilliseconds 인수의 timeout 속성이 Int32.MaxValue보다 큰 경우

tasks 인수에 null 요소가 포함됩니다.

적용 대상

WaitAny(Task[], Int32, CancellationToken)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

제공된 Task 개체가 지정된 시간(밀리초) 이내 또는 취소 토큰이 취소될 때까지 실행을 완료할 때까지 기다립니다.

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

매개 변수

tasks
Task[]

대기할 인스턴스의 Task 배열입니다.

millisecondsTimeout
Int32

대기할 시간(밀리초) 또는 Infinite 무기한 대기할 시간(-1)입니다.

cancellationToken
CancellationToken

CancellationToken 작업이 완료 될 때까지 기다리는 동안 관찰할 A입니다.

반품

배열 인수에서 tasks 완료된 작업의 인덱스이거나 시간 제한이 발생한 경우 -1.

예외

Task 삭제되었습니다.

인수는 tasks .입니다 null.

millisecondsTimeout 는 무한 제한 시간을 나타내는 -1 이외의 음수입니다.

tasks 인수에 null 요소가 포함됩니다.

cancellationToken을 취소했습니다.

적용 대상

WaitAny(Task[], Int32)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

제공된 Task 개체가 지정된 시간(밀리초) 내에 실행을 완료할 때까지 기다립니다.

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 배열입니다.

millisecondsTimeout
Int32

대기할 시간(밀리초) 또는 Infinite 무기한 대기할 시간(-1)입니다.

반품

배열 인수에서 tasks 완료된 작업의 인덱스이거나 시간 제한이 발생한 경우 -1.

예외

Task 삭제되었습니다.

인수는 tasks .입니다 null.

millisecondsTimeout 는 무한 제한 시간을 나타내는 -1 이외의 음수입니다.

tasks 인수에 null 요소가 포함됩니다.

적용 대상

WaitAny(Task[], CancellationToken)

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

대기가 취소되지 않는 한 제공된 Task 개체의 실행이 완료될 때까지 기다립니다.

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

매개 변수

tasks
Task[]

대기할 인스턴스의 Task 배열입니다.

cancellationToken
CancellationToken

CancellationToken 작업이 완료 될 때까지 기다리는 동안 관찰할 A입니다.

반품

배열 인수에서 완료된 작업의 인덱스 tasks 입니다.

예외

Task 삭제되었습니다.

인수는 tasks .입니다 null.

tasks 인수에 null 요소가 포함됩니다.

cancellationToken을 취소했습니다.

적용 대상

WaitAny(Task[])

Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs
Source:
Task.cs

제공된 Task 개체가 실행을 완료할 때까지 기다립니다.

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 배열입니다.

반품

배열에서 완료된 Task 개체의 인덱스입니다 tasks .

예외

Task 삭제되었습니다.

인수는 tasks .입니다 null.

tasks 인수에 null 요소가 포함됩니다.

예제

다음 예제에서는 각각 최소 50밀리초 또는 최대 1,050밀리초 동안 대기하는 5개의 작업을 시작합니다. 그런 다음 메서드는 WaitAny 작업이 완료되기를 기다립니다. 이 예제에서는 대기를 종료한 작업의 작업 ID와 모든 작업의 현재 상태를 표시합니다.

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
open System.Threading
open System.Threading.Tasks

let tasks =
    [| for factor = 0 to 4 do
           Task.Run(fun () -> Thread.Sleep(factor * 250 + 50)) |]

let index = Task.WaitAny tasks
printfn $"Wait ended because task #{tasks[index].Id} completed."
printfn "\nCurrent Status of Tasks:"

for t in tasks do
    printfn $"   Task {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

적용 대상