Task.WhenAny 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立一個任務,當任一提供的任務完成時,該任務就會完成。
多載
| 名稱 | 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>>
要等候完成的工作。
傳回
代表完成所提供任務之一的任務。 返回任務的結果是完成的任務。
例外狀況
論 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>>
要等候完成的工作。
傳回
代表完成所提供任務之一的任務。 回傳任務結果是完成的任務。
例外狀況
陣 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>[]
要等候完成的工作。
傳回
代表完成所提供任務之一的任務。 返回任務的結果是完成的任務。
例外狀況
這個 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>
第二個任務要等待完成。
傳回
代表完成所提供任務之一的任務。 返回任務 TResult 的任務是先完成的任務。
例外狀況
task1 或者 task2 說曾經是 null。
備註
回傳任務在任一提供的任務完成時完成。 回傳任務總是以 RanToCompletion 第一個完成任務為集合的狀態 Result 結束。 即使第一個完成的任務在 或 CanceledFaulted 狀態結束,這點也成立。
Tip
在每次 Task.WhenAny() 超載時,當方法回傳第一個已完成的任務時,其他任務仍會繼續執行直到完成,即使其中任何任務在 Canceled OR Faulted 狀態下完成。 如果這種行為不理想,完成第一個任務後,你可以取消所有剩餘任務。