다음을 통해 공유


TaskFactory.ContinueWhenAny 메서드

정의

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

오버로드

ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny(Task[], Action<Task>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny(Task[], Action<Task>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), continuationOptions As TaskContinuationOptions) As Task

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task 값입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task 값입니다.

scheduler
TaskScheduler

만들어진 연속 TaskScheduler를 예약하는 데 사용할 Task입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

또는 scheduler이(가) null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

제공된 CancellationToken가 이미 삭제된 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny(Task[], Action<Task>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task)) As Task

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationAction 인수가 null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

예제

다음 예제에서는 사용 ContinueWhenAny 방법 및 ContinueWhenAll다음을 보여줍니다.

using System;
using System.Threading;
using System.Threading.Tasks;

class ContinueWhenMultiDemo
{
    // Demonstrated features:
    // 		Task.Factory
    //		TaskFactory.ContinueWhenAll()
    //		TaskFactory.ContinueWhenAny()
    //		Task.Wait()
    // Expected results:
    // 		Three tasks are created in parallel. 
    //		Each task for a different period of time prints a number and returns it.
    //      A ContinueWhenAny() task indicates the first of the three tasks to complete.
    //      A ContinueWhenAll() task sums up the results of the three tasks and prints out the total.
    // Documentation:
    //		http://msdn.microsoft.com/library/system.threading.tasks.taskfactory_members(VS.100).aspx
    static void Main()
    {
        // Schedule a list of tasks that return integer
        Task<int>[] tasks = new Task<int>[]
            {
                Task<int>.Factory.StartNew(() => 
                    {
                        Thread.Sleep(500);
                        Console.WriteLine("Task={0}, Thread={1}, x=5", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                        return 5;
                    }),

                Task<int>.Factory.StartNew(() => 
                    {
                        Thread.Sleep(10);
                        Console.WriteLine("Task={0}, Thread={1}, x=3", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                        return 3;
                    }),

                Task<int>.Factory.StartNew(() => 
                    {
                        Thread.Sleep(200);
                        Console.WriteLine("Task={0}, Thread={1}, x=2", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                        return 2;
                    })
            };

        // Schedule a continuation to indicate the result of the first task to complete
        Task.Factory.ContinueWhenAny(tasks, winner =>
        {
            // You would expect winning result = 3 on multi-core systems, because you expect
            // tasks[1] to finish first.
            Console.WriteLine("Task={0}, Thread={1} (ContinueWhenAny): Winning result = {2}", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, winner.Result);
        });

        // Schedule a continuation that sums up the results of all tasks, then wait on it.
        // The list of antecendent tasks is passed as an argument by the runtime.
        Task.Factory.ContinueWhenAll(tasks,
            (antecendents) =>
            {
                int sum = 0;
                foreach (Task<int> task in antecendents)
                {
                    sum += task.Result;
                }

                Console.WriteLine("Task={0}, Thread={1}, (ContinueWhenAll): Total={2} (expected 10)", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, sum);
            })
            .Wait();
    }
}
Imports System.Threading
Imports System.Threading.Tasks

Module ContinuationWhenMulti
    ' Demonstrated features:
    '   Task.Factory
    '   TaskFactory.ContinueWhenAll()
    '   TaskFactory.ContinueWhenAny()
    '   Task.Wait()
    ' Expected results:
    '   Three tasks are created in parallel. 
    '   Each task for a different period of time prints a number and returns it.
    '   A ContinueWhenAny() task indicates the first of the three tasks to complete.
    '   A ContinueWhenAll() task sums up the results of the three tasks and prints out the total.
    ' Documentation:
    '   http://msdn.microsoft.com/library/system.threading.tasks.taskfactory_members(VS.100).aspx
    Sub Main()
        ' Schedule a list of tasks that return integer
        Dim tasks As Task(Of Integer)() = New Task(Of Integer)() {
            Task(Of Integer).Factory.StartNew(Function()
                                                  Thread.Sleep(500)
                                                  Console.WriteLine("Task={0}, Thread={1}, x=5", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
                                                  Return 5
                                              End Function),
            Task(Of Integer).Factory.StartNew(Function()
                                                  Thread.Sleep(10)
                                                  Console.WriteLine("Task={0}, Thread={1}, x=3", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
                                                  Return 3
                                              End Function),
            Task(Of Integer).Factory.StartNew(Function()
                                                  Thread.Sleep(200)
                                                  Console.WriteLine("Task={0}, Thread={1}, x=2", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
                                                  Return 2
                                              End Function)}


        ' Schedule a continuation to indicate the result of the first task to complete
        Task.Factory.ContinueWhenAny(tasks, Sub(winner)
                                                ' You would expect winning result = 3 on multi-core systems, because you expect
                                                ' tasks[1] to finish first.
                                                Console.WriteLine("Task={0}, Thread={1} (ContinueWhenAny): Winning result = {2}", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, winner.Result)
                                            End Sub)


        ' Schedule a continuation that sums up the results of all tasks, then wait on it.
        ' The list of antecendent tasks is passed as an argument by the runtime.
        Task.Factory.ContinueWhenAll(tasks, Sub(antecendents)
                                                Dim sum As Integer = 0
                                                For Each task__1 As Task(Of Integer) In antecendents
                                                    sum += task__1.Result
                                                Next
                                                Console.WriteLine("Task={0}, Thread={1}, (ContinueWhenAll): Total={2} (expected 10)", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, sum)
                                            End Sub).Wait()
    End Sub
End Module

추가 정보

적용 대상

ContinueWhenAny(Task[], Action<Task>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), cancellationToken As CancellationToken) As Task

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

또는 cancellationToken가 이미 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationAction 인수가 null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있습니다.

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TAntecedentResult, typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task<TResult> 값입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TAntecedentResult, typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult)) As Task(Of TResult)

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TAntecedentResult, typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), cancellationToken As CancellationToken) As Task(Of TResult)

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

또는 제공된 CancellationToken가 이미 삭제된 경우

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TAntecedentResult, typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TResult)

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task<TResult> 값입니다.

scheduler
TaskScheduler

만들어진 연속 TaskScheduler를 예약하는 데 사용할 Task<TResult>입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

또는 scheduler이(가) null인 경우

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

제공된 CancellationToken가 이미 삭제된 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
generic <typename TAntecedentResult>
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult))) As Task

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task<TAntecedentResult>>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
generic <typename TAntecedentResult>
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), cancellationToken As CancellationToken) As Task

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task<TAntecedentResult>>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

또는 제공된 CancellationToken가 이미 삭제된 경우

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
generic <typename TAntecedentResult>
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), continuationOptions As TaskContinuationOptions) As Task

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task<TAntecedentResult>>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task 값입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task를 만듭니다.

public:
generic <typename TAntecedentResult>
 System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task

형식 매개 변수

TAntecedentResult

선행 tasks의 결과 형식입니다.

매개 변수

tasks
Task<TAntecedentResult>[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationAction
Action<Task<TAntecedentResult>>

tasks 배열에서 작업이 완료될 때 실행할 동작 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task 값입니다.

scheduler
TaskScheduler

만들어진 연속 TaskScheduler를 예약하는 데 사용할 Task<TResult>입니다.

반환

Task

새 연속 Task입니다.

예외

tasks 배열이 null인 경우

또는 continuationAction이(가) null인 경우

또는 paramref name="scheduler" />는 null입니다.

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

continuationOptions가 잘못된 TaskContinuationOptions 값을 지정합니다.

제공된 CancellationToken가 이미 삭제된 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult)) As Task(Of TResult)

형식 매개 변수

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

tasks 배열에 null 값이 들어 있습니다.

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), cancellationToken As CancellationToken) As Task(Of TResult)

형식 매개 변수

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

또는 제공된 CancellationToken가 이미 삭제된 경우

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

추가 정보

적용 대상

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)

형식 매개 변수

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task<TResult> 값입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열에 있는 요소 중 하나가 삭제되었습니다.

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

제공된 집합에서 작업이 완료될 때 시작할 연속 Task<TResult>를 만듭니다.

public:
generic <typename TResult>
 System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TResult)

형식 매개 변수

TResult

continuationFunction 대리자가 반환하고 만들어진 Task<TResult>와 연결되는 결과의 형식입니다.

매개 변수

tasks
Task[]

작업이 완료될 때 계속할 작업의 배열입니다.

continuationFunction
Func<Task,TResult>

tasks 배열에서 작업이 완료될 때 비동기로 실행할 함수 대리자입니다.

cancellationToken
CancellationToken

새 연속 작업에 할당할 CancellationToken입니다.

continuationOptions
TaskContinuationOptions

만들어진 연속 TaskContinuationOptions의 동작을 제어하는 Task<TResult> 값입니다.

scheduler
TaskScheduler

만들어진 연속 TaskScheduler를 예약하는 데 사용할 Task<TResult>입니다.

반환

Task<TResult>

새 연속 Task<TResult>입니다.

예외

tasks 배열이 null인 경우

또는 continuationFunction이(가) null인 경우

또는 scheduler이(가) null인 경우

tasks 배열에 null 값이 포함된 경우

또는 tasks 배열이 비어 있는 경우

continuationOptions는 잘못된 TaskContinuationOptions 값을 지정합니다.

제공된 CancellationToken가 이미 삭제된 경우

설명

연속이 실행될 상태를 제한하는 NotOn* 및 OnlyOn*TaskContinuationOptions은 사용할 ContinueWhenAnyTaskStatus 없습니다.

추가 정보

적용 대상