Compartir a través de


task_group::run_and_wait (Método)

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.

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
    El tipo de objeto de la función que se invocará para ejecutar el cuerpo de la tarea.

  • _Task_handle
    Un identificador de la tarea que se ejecutará alineado en el contexto de la llamada. Tenga en cuenta que el llamador tiene la responsabilidad de la duración de este objeto. El runtime continuará esperando que se encuentre activo hasta que el método run_and_wait finalice la ejecución.

  • _Func
    Una función a la que se llamará para invocar el cuerpo del trabajo. Éste puede ser una expresión lambda u otro objeto que admita una versión del operador de llamada de función con la firma void operator()().

Valor devuelto

Una indicación de si se cumple la espera o se canceló el grupo de tareas, debido a una operación de cancelación explícita o a una excepción que se ha producido desde una de sus tareas. Para obtener más información, vea task_group_status.

Comentarios

Observe que una o más de las tareas programadas para este objeto task_group se pueden ejecutar alineadas en el contexto de la llamada.

Si una o más de las tareas programadas en el objeto task_group produce una excepción, el runtime seleccionará una de las excepciones y la propagará fuera de la llamada al método run_and_wait.

En caso del valor devuelto del método run_and_wait en un objeto task_group, el runtime restablece el objeto a un estado limpio donde se puede volver a utilizar. Esto incluye el caso donde se canceló el objeto task_group.

En la ruta de acceso de ejecución no excepcional, tiene un mandato para llamar a este método o al método wait antes de que el destructor de task_group se ejecute.

Requisitos

Encabezado: ppl.h

Espacio de nombres: simultaneidad

Vea también

Referencia

task_group (Clase)

task_group::run (Método)

task_group::wait (Método)

Conceptos

Paralelismo de tareas (Runtime de simultaneidad)