Compartilhar via


Função when_any

Cria uma tarefa que será concluída com êxito quando qualquer tarefa fornecida como argumento é concluída com sucesso.

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End,
   const task_options& _TaskOptions = task_options()
) -> decltype (details::_WhenAnyImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_TaskOptions, _Begin, _End));

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End,
   cancellation_token _CancellationToken
) -> decltype (details::_WhenAnyImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_CancellationToken._GetImplValue(), _Begin, _End));

Parâmetros

  • _Iterator
    O tipo do iterador de entrada.

  • _Begin
    A posição do primeiro elemento no intervalo de elementos a ser combinado na tarefa resultante.

  • _End
    A posição do primeiro elemento além do intervalo de elementos a ser combinado na tarefa resultante.

  • _TaskOptions

  • _CancellationToken
    O token de cancelamento que controla o cancelamento de tarefa retornada. Se você não fornecer um token de cancelamento, a tarefa resultante receberá o token de cancelamento da tarefa que fará com que ele seja concluído.

Valor de retorno

Uma tarefa que ela seja concluída com sucesso quando qualquer uma das tarefas de entrada for concluída com êxito. Se as tarefas de entrada são do tipo T, a saída dessa função será uma task<std::pair<T, size_t>>>, onde o primeiro elemento de pares é o resultado da tarefa de conclusão e o segundo elemento é o índice da tarefa que foi concluída. Se as tarefas de entrada são do tipo void, a saída é task<size_t>, onde o resultado é o índice da tarefa a ser concluída.

Comentários

when_any é uma função sem bloqueio que produz uma task como resultado. Ao contrário de task::wait, é seguro chamar essa função em um aplicativo Windows Store na thread de ASTA (Aplicativo STA).

Para obter mais informações, consulte Paralelismo de tarefa (tempo de execução de simultaneidade).

Requisitos

Cabeçalho: ppltasks.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Conceitos

Paralelismo de tarefa (tempo de execução de simultaneidade)