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 狀態結束,並將結果集設為要完成的第一個工作。 即使第一個完成的工作是以 或 Faulted 狀態結束 Canceled ,也是如此。

適用於

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 設定為要完成的第一個工作。 即使第一個完成的工作是以 或 Faulted 狀態結束 Canceled ,也是如此。

適用於

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 設定為要完成的第一個工作。 即使第一個工作完成 Canceled 于 或 Faulted 狀態,結果值 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 工作或是空的。

備註

傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以狀態結束, RanToCompletion 並將它 Result 設定為要完成的第一個工作。 即使第一個完成的工作是以 或 Faulted 狀態結束 Canceled ,也是如此。

適用於

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 設定為要完成的第一個工作。 即使第一個完成的工作是以 或 Faulted 狀態結束 Canceled ,也是如此。

適用於

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 設定為要完成的第一個工作。 即使第一個工作完成 Canceled 于 或 Faulted 狀態,結果值 true 也是一樣。

提示

當此方法傳回第一個已完成的工作時,在 Task.WhenAny () 的每個多載版本中,其他工作仍會繼續執行,直到完成為止,甚至任何工作都已完成 CanceledFaulted 狀態。 因此,如果不需要該行為,您可能想要在第一個工作完成之後取消所有剩餘的工作。

適用於