task_group (Clase)

La clase task_group representa una colección de trabajo paralelo que se puede esperar o cancelar.

class task_group;

Miembros

Constructores públicos

Name

Descripción

task_group::task_group (Constructor)

Crea un nuevo objeto task_group.

task_group::~task_group (Destructor)

Destruye un objeto task_group. Se espera que llame al método run_and_wait o wait en el objeto antes de la ejecución del destructor, a menos que el destructor se esté ejecutando como el resultado del desenredo de pila debido a una excepción.

Métodos públicos

Name

Descripción

task_group::cancel (Método)

Realiza un mayor esfuerzo para intentar cancelar el subárbol de trabajo con raíz en este grupo de tareas. Cada tarea programada en el grupo de tareas se cancelará transitivamente si es posible.

task_group::is_canceling (Método)

Informa el llamador si el grupo de tareas está o no actualmente en medio de una cancelación. Esto no indica necesariamente que el método cancel fue llamado en el objeto task_group (aunque sin duda califica este método para devolver true). Puede darse el caso de que el objeto task_group se está ejecutando alineado y un grupo de tareas más arriba en el árbol de trabajo se haya cancelado. En casos como éstos donde el runtime puede determinar de antemano que la cancelación fluirá a través de este objeto task_group, también se devolverá true.

task_group::run (Método)

Sobrecargado. Programa una tarea en el objeto task_group. Si un objeto task_handle se pasa como un parámetro a run, el llamador es responsable de administrar la duración del objeto task_handle. La versión del método que toma una referencia a un objeto de función como un parámetro implica la asignación del montón dentro del runtime que se puede realizar con menos rendimiento que el uso de la versión que toma una referencia a un objeto task_handle.

task_group::run_and_wait (Método)

Sobrecargado. Programa una tarea que se ejecuta alineada en el contexto de la llamada con la ayuda del objeto task_group para una compatibilidad de cancelación completa. Después, la función espera hasta que todo el trabajo en el objeto task_group se haya completado o cancelado. Si un objeto task_handle se pasa como un parámetro a run_and_wait, el llamador es responsable de administrar la duración del objeto task_handle.

task_group::wait (Método)

Espera hasta que todo el trabajo en el objeto task_group se haya completado o cancelado.

Comentarios

A diferencia de la clase structured_task_group muy restringida, la clase task_group es una construcción mucho más general. No tiene ninguna de las restricciones descritas por structured_task_group. Los objetos task_group se pueden utilizar sin ningún riesgo por los subprocesos y utilizar de forma libre. La desventaja de la construcción task_group es que no puede realizarse además de la construcción structured_task_group en tareas que realizan pequeñas cantidades de trabajo.

Para obtener más información, vea Paralelismo de tareas (Runtime de simultaneidad).

Jerarquía de herencia

task_group

Requisitos

Encabezado: ppl.h

Espacio de nombres: Simultaneidad

Vea también

Referencia

Espacio de nombres de simultaneidad

structured_task_group (Clase)

task_handle (Clase)