Partilhar via


Função de when_all

Cria uma tarefa será concluída com êxito quando todas as tarefas fornecidas como argumentos concluída com êxito.

template <
   typename _Iterator
>
auto when_all(
   _Iterator_Begin,
   _Iterator_End
) -> decltype (details::_WhenAllImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(nullptr, _Begin, _End));

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

Parâmetros

  • _Iterator
    O tipo de iterador de entrada.

  • _Begin
    A posição do primeiro elemento no intervalo de elementos a serem combinados em tarefa resultante.

  • _End
    A posição do primeiro elemento além do intervalo de elementos a serem combinados em tarefa resultante.

  • _CancellationToken
    O símbolo de cancelamento que controla o cancelamento da tarefa retornada.Se você não fornecer um token de cancelamento, a tarefa resultante será criada com um token é uma combinação de todos os tokens canceláveis (símbolos criados por métodos diferentes de **cancellation_token::none()**tarefas fornecido.

Valor de retorno

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

Comentários

Se uma das tarefas é cancelada ou lança uma exceção, a tarefa retornada será concluída no início, estado cancelados, e a exceção se encontrou, será lançada se você chamar get() ou wait() nessa tarefa.

Requisitos

Cabeçalho: ppltasks.h

Namespace: concorrência

Consulte também

Referência

simultaneidade Namespace

Conceitos

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