Task.WhenAny 方法

定义

任何提供的任务已完成时,创建将完成的任务。

重载

WhenAny(IEnumerable<Task>)

任何提供的任务已完成时,创建将完成的任务。

WhenAny(Task[])

任何提供的任务已完成时,创建将完成的任务。

WhenAny(Task, Task)

提供的任一任务完成时,创建将完成的任务。

WhenAny<TResult>(IEnumerable<Task<TResult>>)

任何提供的任务已完成时,创建将完成的任务。

WhenAny<TResult>(Task<TResult>[])

任何提供的任务已完成时,创建将完成的任务。

WhenAny<TResult>(Task<TResult>, Task<TResult>)

提供的任一任务完成时,创建将完成的任务。

WhenAny(IEnumerable<Task>)

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

任何提供的任务已完成时,创建将完成的任务。

public:
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task ^> ^ WhenAny(System::Collections::Generic::IEnumerable<System::Threading::Tasks::Task ^> ^ tasks);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> tasks);
static member WhenAny : seq<System.Threading.Tasks.Task> -> System.Threading.Tasks.Task<System.Threading.Tasks.Task>
Public Shared Function WhenAny (tasks As IEnumerable(Of Task)) As Task(Of Task)

参数

tasks
IEnumerable<Task>

等待完成的任务。

返回

表示提供的任务之一已完成的任务。 返回任务的结果是完成的任务。

例外

tasks 参数为 null

tasks 数组包含了 null 任务,或为空。

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以 RanToCompletion 状态结束,其“结果”设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,也是如此。

适用于

WhenAny(Task[])

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

任何提供的任务已完成时,创建将完成的任务。

public:
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task ^> ^ WhenAny(... cli::array <System::Threading::Tasks::Task ^> ^ tasks);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (params System.Threading.Tasks.Task[] tasks);
static member WhenAny : System.Threading.Tasks.Task[] -> System.Threading.Tasks.Task<System.Threading.Tasks.Task>
Public Shared Function WhenAny (ParamArray tasks As Task()) As Task(Of Task)

参数

tasks
Task[]

等待完成的任务。

返回

表示提供的任务之一已完成的任务。 返回任务的结果是完成的任务。

例外

tasks 参数为 null。

tasks 数组包含了 null 任务,或为空。

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以状态结束, RanToCompletionResult 设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,也是如此。

适用于

WhenAny(Task, Task)

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

提供的任一任务完成时,创建将完成的任务。

public:
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task ^> ^ WhenAny(System::Threading::Tasks::Task ^ task1, System::Threading::Tasks::Task ^ task2);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2);
static member WhenAny : System.Threading.Tasks.Task * System.Threading.Tasks.Task -> System.Threading.Tasks.Task<System.Threading.Tasks.Task>
Public Shared Function WhenAny (task1 As Task, task2 As Task) As Task(Of Task)

参数

task1
Task

等待完成的第一个任务。

task2
Task

等待完成的第二个任务。

返回

表示提供的任务之一已完成的新任务。 其 Result 是首先完成的任务。

例外

task1task2null

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以状态结束, RanToCompletionResult 设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,结果值也是如此true

适用于

WhenAny<TResult>(IEnumerable<Task<TResult>>)

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

任何提供的任务已完成时,创建将完成的任务。

public:
generic <typename TResult>
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task<TResult> ^> ^ WhenAny(System::Collections::Generic::IEnumerable<System::Threading::Tasks::Task<TResult> ^> ^ tasks);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>> tasks);
static member WhenAny : seq<System.Threading.Tasks.Task<'Result>> -> System.Threading.Tasks.Task<System.Threading.Tasks.Task<'Result>>
Public Shared Function WhenAny(Of TResult) (tasks As IEnumerable(Of Task(Of TResult))) As Task(Of Task(Of TResult))

类型参数

TResult

已完成任务的类型。

参数

tasks
IEnumerable<Task<TResult>>

等待完成的任务。

返回

Task<Task<TResult>>

表示提供的任务之一已完成的任务。 返回任务的结果是完成的任务。

例外

tasks 参数为 null

tasks 数组包含了 null 任务,或为空。

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以状态结束, RanToCompletionResult 设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,也是如此。

适用于

WhenAny<TResult>(Task<TResult>[])

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

任何提供的任务已完成时,创建将完成的任务。

public:
generic <typename TResult>
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task<TResult> ^> ^ WhenAny(... cli::array <System::Threading::Tasks::Task<TResult> ^> ^ tasks);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (params System.Threading.Tasks.Task<TResult>[] tasks);
static member WhenAny : System.Threading.Tasks.Task<'Result>[] -> System.Threading.Tasks.Task<System.Threading.Tasks.Task<'Result>>
Public Shared Function WhenAny(Of TResult) (ParamArray tasks As Task(Of TResult)()) As Task(Of Task(Of TResult))

类型参数

TResult

已完成任务的类型。

参数

tasks
Task<TResult>[]

等待完成的任务。

返回

Task<Task<TResult>>

表示提供的任务之一已完成的任务。 返回任务的结果是完成的任务。

例外

tasks 参数为 null。

tasks 数组包含了 null 任务,或为空。

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以状态结束, RanToCompletionResult 设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,也是如此。

适用于

WhenAny<TResult>(Task<TResult>, Task<TResult>)

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

提供的任一任务完成时,创建将完成的任务。

public:
generic <typename TResult>
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task<TResult> ^> ^ WhenAny(System::Threading::Tasks::Task<TResult> ^ task1, System::Threading::Tasks::Task<TResult> ^ task2);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (System.Threading.Tasks.Task<TResult> task1, System.Threading.Tasks.Task<TResult> task2);
static member WhenAny : System.Threading.Tasks.Task<'Result> * System.Threading.Tasks.Task<'Result> -> System.Threading.Tasks.Task<System.Threading.Tasks.Task<'Result>>
Public Shared Function WhenAny(Of TResult) (task1 As Task(Of TResult), task2 As Task(Of TResult)) As Task(Of Task(Of TResult))

类型参数

TResult

返回的任务的结果的类型。

参数

task1
Task<TResult>

等待完成的第一个任务。

task2
Task<TResult>

等待完成的第二个任务。

返回

Task<Task<TResult>>

表示提供的任务之一已完成的任务。 返回的任务的 TResult 是第一项完成的任务。

例外

task1task2null

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以状态结束, RanToCompletionResult 设置为要完成的第一个任务。 即使要完成的第一个任务以 CanceledFaulted 状态结束,结果值也是如此true

提示

在此方法返回第一个完成的任务时,在每个重载版本的 Task.WhenAny () 中,其他任务将继续运行,直到完成,甚至任何任务都以 CanceledFaulted 状态完成。 因此,如果不需要该行为,可能需要在第一个任务完成后取消所有剩余任务。

适用于