Task.WhenAny 方法

定義

建立一個任務,當任一提供的任務完成時,該任務就會完成。

多載

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

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 先完成的任務。

例外狀況

task1 或者 task2 說曾經是 null

備註

回傳任務在任一提供的任務完成時完成。 回傳任務總是以 RanToCompletion 第一個完成任務為集合的狀態 Result 結束。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

適用於

WhenAny(Task[])

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 論點是無效的。

tasks 列包含空任務或為空。

備註

回傳的任務會在所提供任務完成時完成。 回傳任務總是以設定為第一個完成任務的狀態RanToCompletion結束Result。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

適用於

WhenAny(ReadOnlySpan<Task>)

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs

建立一個任務,當任一提供的任務完成時,該任務就會完成。

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>)

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 列包含空任務或為空。

備註

回傳的任務會在所提供任務完成時完成。 回傳的任務總是以 RanToCompletion 該狀態結束,結果設為第一個完成的任務。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

適用於

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

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 列包含空任務或為空。

備註

回傳的任務會在所提供任務完成時完成。 回傳任務總是以設定為第一個完成任務的狀態RanToCompletion結束Result。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

適用於

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

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs

建立一個任務,當任一提供的任務完成時,該任務就會完成。

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>[])

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 論點是無效的。

tasks 列包含空任務或為空。

備註

回傳的任務會在所提供任務完成時完成。 回傳任務總是以設定為第一個完成任務的狀態RanToCompletion結束Result。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

適用於

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

來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
Task.cs
來源:
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 的任務是先完成的任務。

例外狀況

task1 或者 task2 說曾經是 null

備註

回傳任務在任一提供的任務完成時完成。 回傳任務總是以 RanToCompletion 第一個完成任務為集合的狀態 Result 結束。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。

Tip

在每次 Task.WhenAny() 超載時,當方法回傳第一個已完成的任務時,其他任務仍會繼續執行直到完成,即使其中任何任務在 Canceled OR Faulted 狀態下完成。 如果這種行為不理想,完成第一個任務後,你可以取消所有剩餘任務。

適用於