Método de task_group::run_and_wait

Agenda uma tarefa para ser executado embutido no contexto de chamada com o auxílio do task_group o objeto para o suporte a cancelamento completo. A função espera até que todos funcionam na task_group objeto concluída ou cancelado. Se um task_handle objeto é passado como um parâmetro para run_and_wait, o chamador é responsável por gerenciar a vida útil do task_handle objeto.

template<
   class _Function
>
task_group_status run_and_wait(
   task_handle<_Function>& _Task_handle
);
template<
   class _Function
>
task_group_status run_and_wait(
   const _Function& _Func
);

Parâmetros

  • _Function
    O tipo de objeto de função que será chamado para executar o corpo da alça de tarefa.

  • _Task_handle
    Um identificador para a tarefa que executará embutido no contexto de chamada. Observe que o chamador tem responsabilidade para a vida útil deste objeto. O tempo de execução continuará esperava viver até o run_and_wait método terminar execução.

  • _Func
    Uma função que será chamada para invocar o corpo do trabalho. Isso pode ser uma expressão lambda ou outro objeto que oferece suporte a uma versão do operador de chamada de função com a assinatura void operator()().

Valor de retorno

Uma indicação que informa se a espera foi atendida ou o grupo de tarefas foi cancelado, devido a uma operação de cancelamento explícita ou de uma exceção sendo lançada de uma das suas tarefas. Para obter mais informações, consulte task_group_status.

Comentários

Observe que uma ou mais das tarefas agendadas para este task_group objeto pode executar embutido no contexto de chamada.

Se um ou mais das tarefas agendadas para este task_group objeto lança uma exceção, o runtime irá selecionar um tal exceção de sua escolha e propagá-la fora da chamada para o run_and_wait método.

Após retornar na run_and_wait método em um task_group o objeto, o runtime redefine o objeto para um estado limpo, onde pode ser reutilizado. Isso inclui o caso em que o task_group objeto foi cancelado.

No caminho de execução-excepcional, você tem uma norma para chamar esse método ambos ou o wait método antes do destruidor da task_group executa.

Requisitos

Cabeçalho: PPL.h

Namespace: Simultaneidade

Consulte também

Referência

Classe de task_group

Método de task_group::Run

Método de task_group::wait

Conceitos

Paralelismo de tarefas (Runtime de simultaneidade)