Task.WhenAny 方法

定义

创建一个任务,该任务将在任何提供的任务完成时完成。

重载

WhenAny(Task, Task)

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

WhenAny(Task[])

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny(ReadOnlySpan<Task>)

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny(IEnumerable<Task>)

创建一个任务,该任务将在任何提供的任务完成时完成。

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

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny<TResult>(ReadOnlySpan<Task<TResult>>)

创建一个任务,该任务将在任何提供的任务完成时完成。

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

创建一个任务,该任务将在任何提供的任务完成时完成。

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

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

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

注解

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

适用于

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 任务或为空。

注解

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

适用于

WhenAny(ReadOnlySpan<Task>)

创建一个任务,该任务将在任何提供的任务完成时完成。

public:
 static System::Threading::Tasks::Task<System::Threading::Tasks::Task ^> ^ WhenAny(ReadOnlySpan<System::Threading::Tasks::Task ^> tasks);
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (scoped ReadOnlySpan<System.Threading.Tasks.Task> tasks);
static member WhenAny : ReadOnlySpan<System.Threading.Tasks.Task> -> System.Threading.Tasks.Task<System.Threading.Tasks.Task>
Public Shared Function WhenAny (tasks As ReadOnlySpan(Of Task)) As Task(Of Task)

参数

tasks
ReadOnlySpan<Task>

要等待完成的任务。

返回

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

例外

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

注解

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

适用于

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<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 任务或为空。

注解

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

适用于

WhenAny<TResult>(ReadOnlySpan<Task<TResult>>)

创建一个任务,该任务将在任何提供的任务完成时完成。

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

类型参数

TResult

参数

tasks
ReadOnlySpan<Task<TResult>>

要等待完成的任务。

返回

Task<Task<TResult>>

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

例外

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

注解

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

适用于

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 任务或为空。

注解

返回的任务将在提供的任何任务完成时完成。 返回的任务将始终以 RanToCompletion 状态结束,其 Result 设置为要完成的第一个任务。 即使第一个完成的任务以 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

注解

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

提示

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

适用于