Partilhar via


classe de structured_task_group

O structured_task_group classe representa uma coleção altamente estruturada de trabalho paralelo.Fila de tarefas paralelas individuais para um structured_task_group usando task_handle objetos e esperar concluir ou cancelar o grupo de tarefas antes que eles tenham terminado a execução, que cancelará todas as tarefas que não tenham iniciado a execução.

class structured_task_group;

Membros

Dd504799.collapse_all(pt-br,VS.110).gifConstrutores públicos

Nome

Descrição

Construtor de structured_task_group::structured_task_group

Sobrecarregado.Constrói um novo structured_task_group objeto.

structured_task_group:: ~ structured_task_group destruidor

Destrói um structured_task_group objeto.Espera de chamada ou o wait ou run_and_wait método no objeto antes de executar o destruidor, a menos que o destruidor é executado como resultado de uma pilha desenrolar devido a uma exceção.

Dd504799.collapse_all(pt-br,VS.110).gifMétodos públicos

Nome

Descrição

método de structured_task_group::cancel

Faz o melhor esforço tentar cancelar a subárvore com raiz neste grupo de tarefas de trabalho.Cada tarefa agendada no grupo de tarefas será obter cancelada transitivamente se possível.

método structured_task_group::is_canceling

Informa ao chamador ou não o grupo de tarefas está atualmente no meio de um cancelamento.Isso não indica necessariamente que o cancel método foi chamado de structured_task_group objeto (embora, certamente qualifica esse método para retornar true).Ele pode ser o caso que a structured_task_group objeto execução in-line e um grupo de tarefas ainda mais para cima na árvore de trabalho foi cancelado.Em casos como esses onde o runtime pode determinar antecipadamente cancelamento irá fluir por isso structured_task_group objeto, true também será retornado.

método de structured_task_group::run

Sobrecarregado.Agenda uma tarefa sobre o structured_task_group objeto.O chamador gerencia o tempo de vida da task_handle objeto passado a _Task_handle parâmetro.A versão que aceita o parâmetro _Placement faz com que a tarefa a ser viesado para executar no local especificado por esse parâmetro.

método de structured_task_group::run_and_wait

Sobrecarregado.Agenda uma tarefa para ser executado embutido no contexto de chamada com o auxílio do structured_task_group objeto para suporte ao cancelamento completo.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.A função aguarda até que todos funcionem na structured_task_group objeto concluída ou cancelado.

método de structured_task_group::wait

Aguarda até que todos funcionem na structured_task_group foi concluída ou foi cancelada.

Comentários

Há várias restrições severas colocado sobre o uso de um structured_task_group objeto para obter um desempenho:

  • Um único structured_task_group objeto não pode ser usado por vários segmentos.Todas as operações de uma structured_task_group objeto deve ser executado pelo thread que criou o objeto.As duas exceções a essa regra são as funções de membro cancel e is_canceling.O objeto não esteja na lista de captura de uma expressão lambda e ser usado dentro de uma tarefa, a menos que a tarefa está usando uma das operações de cancelamento.

  • Todas as tarefas agendadas para uma structured_task_group objeto são agendadas através do uso de task_handle objetos que explicitamente você deve gerenciar a vida útil do.

  • Vários grupos somente podem ser usados na ordem absolutamente aninhado.Se dois structured_task_group objetos são declarados, o outro sendo declarado (um interno) deve destruct antes de qualquer método, exceto cancel ou is_canceling é chamado no primeiro (uma externa).Esta condição for verdadeira no caso de simplesmente declarar vários structured_task_group objetos dentro de escopos aninhados funcionalmente ou mesmos assim como no caso de uma tarefa foi enfileirado para o structured_task_group via o run ou run_and_wait métodos.

  • Ao contrário geral task_group classe, todos os estados na structured_task_group classe são finais.Depois na fila de tarefas para o grupo e esperava concluir, não pode usar o mesmo grupo novamente.

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

Hierarquia de herança

structured_task_group

Requisitos

Cabeçalho: ppl.h

Namespace: concorrência

Consulte também

Referência

simultaneidade Namespace

classe de task_group

classe de task_handle