Поделиться через


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

Создает задачу, которая завершится после завершения любой из предоставленных задач.

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 или task2null.

Комментарии

Возвращаемая задача завершится после завершения любой из предоставленных задач. Возвращаемая задача всегда заканчивается в состоянии RanToCompletion с его Result для выполнения первой задачи. Значение результата true даже если первая задача завершена в состоянии Canceled или Faulted.

Применяется к

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

Задачи, которые нужно ждать завершения.

Возвращаемое значение

Задача, представляющая завершение одной из предоставленных задач. Результат задачи возврата — это задача, которая завершена.

Исключения

Аргумент 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>

Задачи, которые нужно ждать завершения.

Возвращаемое значение

Задача, представляющая завершение одной из предоставленных задач. Результат задачи возврата — это задача, которая завершена.

Исключения

Аргумент tasks был null.

Массив tasks содержал задачу NULL или был пуст.

Комментарии

Возвращаемая задача завершится после завершения любой из предоставленных задач. Возвращаемая задача всегда заканчивается в состоянии RanToCompletion с его результирующий набор для первой задачи, чтобы завершить. Это верно, даже если первая задача завершена в состоянии 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>>

Задачи, которые нужно ждать завершения.

Возвращаемое значение

Task<Task<TResult>>

Задача, представляющая завершение одной из предоставленных задач. Результат задачи возврата — это задача, которая завершена.

Исключения

Аргумент 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>>

Задачи, которые нужно ждать завершения.

Возвращаемое значение

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

Задачи, которые нужно ждать завершения.

Возвращаемое значение

Task<Task<TResult>>

Задача, представляющая завершение одной из предоставленных задач. Результат задачи возврата — это задача, которая завершена.

Исключения

Аргумент 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>

Вторая задача, подождать завершения.

Возвращаемое значение

Task<Task<TResult>>

Задача, представляющая завершение одной из предоставленных задач. TResult возвращаемой задачи — это задача, которая была завершена первым.

Исключения

task1 или task2null.

Комментарии

Возвращаемая задача завершится после завершения любой из предоставленных задач. Возвращаемая задача всегда заканчивается в состоянии RanToCompletion с его Result для выполнения первой задачи. Значение результата true даже если первая задача завершена в состоянии Canceled или Faulted.

Кончик

В каждой перегруженной версии Task.WhenAny(), когда этот метод возвращает первую завершенную задачу, другие задачи будут продолжать выполняться до завершения, даже все из них завершены в состоянии Canceled или Faulted. Таким образом, если это поведение не требуется, вы можете отменить все оставшиеся задачи после завершения первой задачи.

Применяется к