Task.WhenAny 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立當任何提供的工作完成時,將會完成的工作。
多載
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
建立當其中一個提供的工作完成時,將會完成的工作。
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
設定為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,結果值還是 true
。
適用於
WhenAny(Task[])
- 來源:
- 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[]
要等候完成的工作。
傳回
表示其中一個所提供工作完成的工作。 傳回工作的 Result 是已完成的工作。
例外狀況
tasks
自變數為 null。
tasks
陣列包含 Null 工作或空白。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion
狀態結束,其 Result
設定為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,也是如此。
適用於
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>)
- 來源:
- 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>
要等候完成的工作。
傳回
表示其中一個所提供工作完成的工作。 傳回工作的 Result 是已完成的工作。
例外狀況
tasks
自變數 null
。
tasks
陣列包含 Null 工作或空白。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion
狀態結束,其 Result set 設為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,也是如此。
適用於
WhenAny<TResult>(IEnumerable<Task<TResult>>)
- 來源:
- 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>>
要等候完成的工作。
傳回
表示其中一個所提供工作完成的工作。 傳回工作的 Result 是已完成的工作。
例外狀況
tasks
自變數 null
。
tasks
陣列包含 Null 工作或空白。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion
狀態結束,其 Result
設定為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,也是如此。
適用於
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>>
要等候完成的工作。
傳回
表示其中一個所提供工作完成的工作。 傳回任務的結果是已完成的工作。
例外狀況
tasks
陣列包含 null
工作或空白。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion 狀態結束,並將結果集設定為要完成的第一個工作。 即使第一個完成的工作以已取消或錯誤狀態結束,這還是 true
。
適用於
WhenAny<TResult>(Task<TResult>[])
- 來源:
- 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>[]
要等候完成的工作。
傳回
表示其中一個所提供工作完成的工作。 傳回工作的 Result 是已完成的工作。
例外狀況
tasks
自變數為 null。
tasks
陣列包含 Null 工作或空白。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion
狀態結束,其 Result
設定為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,也是如此。
適用於
WhenAny<TResult>(Task<TResult>, Task<TResult>)
- 來源:
- 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>
要等候完成的第二個工作。
傳回
表示其中一個所提供工作完成的工作。 傳回的工作 TResult
是先完成的工作。
例外狀況
task1
或 task2
null
。
備註
傳回的工作會在任何提供的工作完成時完成。 傳回的工作一律會以 RanToCompletion
狀態結束,其 Result
設定為要完成的第一個工作。 即使第一個完成的工作是以 Canceled
或 Faulted
狀態結束,結果值還是 true
。
提示
在此方法傳回第一個完成的工作時,在Task.WhenAny() 的每個多載版本中,其他工作會繼續執行,直到完成為止,即使是任何工作都已完成 Canceled
或 Faulted
狀態。 因此,如果不需要該行為,您可能想要在第一個工作完成之後取消所有剩餘的工作。