Compartilhar via


Função when_all

Cria uma tarefa que será concluída com êxito quando todas as tarefas fornecidas como argumentos são concluídas com sucesso.

template <
   typename _Iterator
>
auto when_all(
   _Iterator_Begin,
   _Iterator_End,
   const task_options& _TaskOptions = task_options()
) -> decltype (details::_WhenAllImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_TaskOptions, _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

Valor de retorno

Uma tarefa que é concluída com êxito quando todas as tarefas de entrada forem concluída com êxito. Se as tarefas de entrada são do tipo T, a saída dessa função será task<std::vector<T>>. Se as tarefas de entrada são do tipo void, a tarefa de saída também será task<void>.

Comentários

when_all é 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).

Se uma das tarefas for cancelada ou lançar uma exceção, a tarefa retornada será concluída com antecedência no estado cancelado e a exceção, se for encontrada, será lançada se você chamar task::get ou task::wait nessa tarefa.

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)