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
Construtores públicos
Nome |
Descrição |
---|---|
Sobrecarregado.Constrói um novo structured_task_group objeto. |
|
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. |
Métodos públicos
Nome |
Descrição |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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