task_group::run_and_wait, méthode

Planifie une tâche devant s'exécuter inline dans le contexte d'appel avec l'assistance de l'objet task_group pour une prise en charge complète de l'annulation. La fonction attend ensuite que tout le travail sur l'objet task_group soit terminé ou ait été annulé. Si un objet task_handle est passé comme paramètre à run_and_wait, l'appelant est responsable de la gestion de la durée de vie de l'objet 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
);

Paramètres

  • _Function
    Type de l'objet de fonction qui sera appelé pour exécuter le corps du handle de tâche.

  • _Task_handle
    Handle à la tâche qui sera exécutée inline sur le contexte d'appel. Notez que l'appelant est responsable de la durée de vie de cet objet. Le runtime continuera à attendre qu'il vive jusqu'à ce que la méthode run_and_wait finisse l'exécution.

  • _Func
    Fonction qui sera appelée pour appeler le corps du travail. Il peut s'agir d'une expression lambda ou d'autre objet qui prend en charge une version de l'opérateur d'appel de fonction avec la signature void operator()().

Valeur de retour

Indique si l'attente a été respectée ou si le groupe de tâches a été annulé, en raison d'une opération d'annulation explicite ou d'une exception levée par une de ses tâches. Pour plus d'informations, consultez task_group_status.

Notes

Notez qu'une ou plusieurs des tâches planifiées pour cet objet task_group peuvent s'exécuter inline dans le contexte d'appel.

Si une ou plusieurs des tâches planifiées pour cet objet task_group lève une exception, le runtime choisira une exception de ce type et la propagera hors de l'appel à la méthode run_and_wait.

Au retour de la méthode run_and_wait sur un objet task_group, le runtime réinitialise l'objet sur un état propre dans lequel il peut être réutilisé. Cela inclut le cas où l'objet task_group a été annulé.

Dans le chemin d'accès d'exécution non exceptionnel, vous avez un mandat pour appeler cette méthode ou la méthode wait avant que le destructeur du task_group ne s'exécute.

Configuration requise

En-tête : ppl.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

task_group, classe

task_group::run, méthode

task_group::wait, méthode

Concepts

Parallélisme des tâches (runtime d'accès concurrentiel)