structured_task_group classe

O structured_task_group classe representa uma coleção altamente estruturada de trabalho paralelos. Fila de tarefas individuais em paralelo para uma structured_task_group usando task_handle objetos e espera para que eles possam concluir, ou cancelar o grupo de tarefas antes que eles tenham terminado a execução, que cancelará todas as tarefas que não começaram a execução.

class structured_task_group;

Membros

Construtores públicos

Nome

Descrição

Construtor de structured_task_group::structured_task_group

Constrói uma nova structured_task_group objeto.

structured_task_group:: ~ structured_task_group destruidor

Destrói um structured_task_group objeto. Espera-se que você chamar tanto o wait ou run_and_wait desenrolar do método no objeto antes para o destruidor execução, a menos que o destruidor está sendo executado como resultado de pilha devido a uma exceção.

Métodos públicos

Nome

Descrição

Método de structured_task_group::Cancel

Faz um melhor esforço tentar cancelar a subárvore com raiz neste grupo de tarefas de trabalho. Todas as tarefas agendadas em um grupo de tarefas serão obter cancelada transitivamente se possível.

Método de structured_task_group::is_canceling

Informa o chamador ou não o grupo de tarefas está no meio de um cancelamento. Isso não indica necessariamente que o cancel método foi chamado a structured_task_group objeto (embora, certamente qualifica este método para retornar true). Ele pode ser o caso que a structured_task_group objeto está em 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 o objeto, true será retornado como bem.

Método de structured_task_group::Run

Agenda uma tarefa sobre o structured_task_group objeto. O chamador gerencia a vida útil do task_handle objeto passado a _Task_handle 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 o objeto para o suporte a 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 espera até que todos funcionam na structured_task_group objeto concluída ou cancelado.

Método de structured_task_group::wait

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

Comentários

Há uma série de restrições severas colocado sobre o uso de um structured_task_group o objeto para obter o desempenho:

  • Um único structured_task_group objeto não pode ser usado por vários threads. Todas as operações em um 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 pode não estar 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 os objetos que você explicitamente deve gerenciar a vida útil de.

  • Vários grupos somente podem ser usados na ordem absolutamente aninhado. Se dois structured_task_group objetos são declarados, segundo aquele que está sendo declarado (um interno) deve ser 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 declarando vários structured_task_group objetos dentro de escopos mesmos ou funcionalmente aninhados, bem como no caso de uma tarefa que está na fila de structured_task_group via o run ou run_and_wait métodos.

  • Ao contrário da general task_group classe, todos os estados na structured_task_group são a classe final. Depois que você tem na fila de tarefas para o grupo e aguardado para que eles possam concluir, você não pode usar o mesmo grupo novamente.

Para obter mais informações, consulte Paralelismo de tarefas (Runtime de simultaneidade).

Hierarquia de herança

structured_task_group

Requisitos

Cabeçalho: PPL.h

Namespace: Simultaneidade

Consulte também

Referência

Namespace de simultaneidade

Classe de task_group

Classe de task_handle