TaskFactory.ContinueWhenAny 方法

定義

建立一個續寫 Task ,並在完成指定任務集後啟動。

多載

名稱 Description
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)

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationActionnull

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

tasks 列為 null

-或-

continuationActionnull

-或-

schedulernull

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

所提供的 CancellationToken 已經被處理掉。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

ContinueWhenAny(Task[], Action<Task>)

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationAction 點為 null

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

範例

以下範例說明如何使用 ContinueWhenAnyContinueWhenAll

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)

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

-或-

cancellationToken 已經被處理掉了。

tasks 列為 null

-或-

continuationAction 點為 null

tasks 列包含一個 null 值。

-或-

tasks陣列為空。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

tasks 列包含一個空值。

-或-

tasks陣列是空的。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

tasks 列包含一個空值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

-或-

所提供的 CancellationToken 已經被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

tasks 列為 null

-或-

continuationFunctionnull

-或-

schedulernull

tasks 列包含一個空值。

-或-

tasks陣列是空的。

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

所提供的 CancellationToken 已經被處理掉。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationActionnull

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

-或-

所提供的 CancellationToken 已經被處理掉。

tasks 列為 null

-或-

continuationActionnull

tasks 列包含一個空值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationActionnull

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

tasks 列包含一個空值。

-或-

tasks陣列是空的。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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

例外狀況

tasks 列為 null

-或-

continuationActionnull

-或-

paramref 名稱=「排程器」 /> 是 null

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

continuationOptions 指定一個無效 TaskContinuationOptions 值。

所提供的 CancellationToken 已經被處理掉。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

tasks 列包含一個空值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

-或-

所提供的 CancellationToken 已經被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

陣列中的 tasks 一個元素已被處理掉。

tasks 列為 null

-或-

continuationFunctionnull

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於

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

來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs
來源:
TaskFactory.cs

建立一個續寫 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>

例外狀況

tasks 列為 null

-或-

continuationFunctionnull

-或-

schedulernull

tasks 列包含一個 null 值。

-或-

tasks陣列是空的。

continuationOptions 指定一個無效的 TaskContinuationOptions 值。

所提供的 CancellationToken 已經被處理掉。

備註

NotOn* 和 OnlyOn* TaskContinuationOptions(限制 TaskStatus 執行續寫的狀態)在 中是非法 ContinueWhenAny的。

另請參閱

適用於