Partager via


structured_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 structured_task_group pour une prise en charge complète de l'annulation. 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. La fonction attend ensuite que tout le travail sur l'objet structured_task_group soit terminé ou ait été annulé.

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
    Le type de l'objet fonction qui sera appelé pour exécuter la 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'un objet lambda ou d'un 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 structured_task_group peuvent s'exécuter inline dans le contexte d'appel.

Si une ou plusieurs des tâches planifiées pour cet objet structured_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.

Après que cette fonction soit retournée, l'objet structured_task_group est considéré comme étant dans un état final et ne doit pas être utilisé. Notez que son utilisation après le retour de la méthode run_and_wait provoquera un comportement indéfini.

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 structured_task_group ne s'exécute.

Configuration requise

En-tête : ppl.h

Espace de noms : concurrency

Voir aussi

Référence

structured_task_group, classe

structured_task_group::run, méthode

structured_task_group::wait, méthode

Concepts

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