Compartilhar via


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 objeto para suporte ao cancelamento completo.A função aguarda até que todos funcionem 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 tarefa.

  • _Task_handle
    Um identificador para a tarefa que será executada embutido no contexto de chamada.Observe que o chamador tem responsabilidade pela vida útil desse objeto.O tempo de execução continuará esperava live até o run_and_wait método Finaliza a 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 de se a espera foi atendida ou o grupo de tarefas foi cancelado, devido a uma operação de cancelamento explícita ou uma exceção sendo lançada uma das suas tarefas.Para obter mais informações, consulte task_group_status.

Comentários

Observe que uma ou mais 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 tal exceção de sua escolha e propagar-out da chamada para o run_and_wait método.

Após retornar do run_and_wait método em um task_group de objeto, o tempo de execução 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 não excepcional, você tem um mandato para chamar esse método tanto ou o wait método antes o destruidor do task_group executa.

Requisitos

Cabeçalho: ppl.h

Namespace: concorrência

Consulte também

Referência

classe de task_group

método de task_group::run

método de task_group::wait

Conceitos

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