英語で読む

次の方法で共有


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)

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (System.Threading.Tasks.Task task1, System.Threading.Tasks.Task task2);

パラメーター

task1
Task

完了を待機する最初のタスク。

task2
Task

完了を待機する 2 番目のタスク。

戻り値

指定されたタスクの 1 つの完了を表す新しいタスク。 その Result は、最初に完了したタスクです。

例外

task1 または task2nullされました。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、その Result は完了する最初のタスクに設定されます。 結果の値は、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも true されます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 5, 6, 7, 8, 9

WhenAny(Task[])

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (params System.Threading.Tasks.Task[] tasks);

パラメーター

tasks
Task[]

完了を待機するタスク。

戻り値

指定されたタスクの 1 つの完了を表すタスク。 戻りタスクの結果は、完了したタスクです。

例外

tasks 引数は null でした。

tasks 配列に null タスクが含まれていたか、空でした。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、その Result は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも当てはまります。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WhenAny(ReadOnlySpan<Task>)

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (scoped ReadOnlySpan<System.Threading.Tasks.Task> tasks);

パラメーター

tasks
ReadOnlySpan<Task>

完了を待機するタスク。

戻り値

指定されたタスクの 1 つの完了を表すタスク。 戻り値のタスクの結果は、完了したタスクです。

例外

tasks 配列に null タスクが含まれているか、空です。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、結果は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが [キャンセル済み] または [Faulted] 状態で終了した場合でも true されます。

適用対象

.NET 9
製品 バージョン
.NET 9

WhenAny(IEnumerable<Task>)

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny (System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> tasks);

パラメーター

tasks
IEnumerable<Task>

完了を待機するタスク。

戻り値

指定されたタスクの 1 つの完了を表すタスク。 戻りタスクの結果は、完了したタスクです。

例外

tasks 引数が nullされました。

tasks 配列に null タスクが含まれていたか、空でした。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、結果は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも当てはまります。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>> tasks);

型パラメーター

TResult

完了したタスクの種類。

パラメーター

tasks
IEnumerable<Task<TResult>>

完了を待機するタスク。

戻り値

Task<Task<TResult>>

指定されたタスクの 1 つの完了を表すタスク。 戻りタスクの結果は、完了したタスクです。

例外

tasks 引数が nullされました。

tasks 配列に null タスクが含まれていたか、空でした。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、その Result は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも当てはまります。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (scoped ReadOnlySpan<System.Threading.Tasks.Task<TResult>> tasks);

型パラメーター

TResult

パラメーター

tasks
ReadOnlySpan<Task<TResult>>

完了を待機するタスク。

戻り値

Task<Task<TResult>>

指定されたタスクの 1 つの完了を表すタスク。 戻り値のタスクの結果は、完了したタスクです。

例外

tasks 配列に null タスクが含まれているか、空です。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、結果は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが [キャンセル済み] または [Faulted] 状態で終了した場合でも true されます。

適用対象

.NET 9
製品 バージョン
.NET 9

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

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult> (params System.Threading.Tasks.Task<TResult>[] tasks);

型パラメーター

TResult

完了したタスクの種類。

パラメーター

tasks
Task<TResult>[]

完了を待機するタスク。

戻り値

Task<Task<TResult>>

指定されたタスクの 1 つの完了を表すタスク。 戻りタスクの結果は、完了したタスクです。

例外

tasks 引数は null でした。

tasks 配列に null タスクが含まれていたか、空でした。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、その Result は完了する最初のタスクに設定されます。 これは、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも当てはまります。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
Task.cs
ソース:
Task.cs
ソース:
Task.cs

指定されたタスクのいずれかが完了したときに完了するタスクを作成します。

C#
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);

型パラメーター

TResult

返されたタスクの結果の型。

パラメーター

task1
Task<TResult>

完了を待機する最初のタスク。

task2
Task<TResult>

完了を待機する 2 番目のタスク。

戻り値

Task<Task<TResult>>

指定されたタスクの 1 つの完了を表すタスク。 返されたタスクの TResult は、最初に完了したタスクです。

例外

task1 または task2nullされました。

注釈

返されたタスクは、指定されたタスクのいずれかが完了すると完了します。 返されたタスクは常に RanToCompletion 状態で終了し、その Result は完了する最初のタスクに設定されます。 結果の値は、完了する最初のタスクが Canceled または Faulted 状態で終了した場合でも true されます。

ヒント

このメソッドが最初に完了したタスクを返すときに、オーバーロードされたすべてのバージョンの Task.WhenAny() では、他のタスクは、Canceled または Faulted 状態で完了した場合でも、完了するまで実行を続行します。 そのため、その動作が望ましくない場合は、最初のタスクが完了したら、残りのタスクをすべて取り消すことができます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 5, 6, 7, 8, 9