task_group::run, méthode
Planifie une tâche sur l'objet task_group. Si un objet task_handle est passé comme paramètre à run, l'appelant est responsable de la gestion de la durée de vie de l'objet task_handle. La version de la méthode qui prend comme paramètre une référence à un objet de fonction implique l'allocation de tas à l'intérieur du runtime, ce qui peut donner de moins bons résultats que l'utilisation de la version qui prend comme paramètre une référence à un objet task_handle. La version qui accepte le paramètre _Placement implique que la tâche soit influencée par rapport à l'execution à l'emplacement spécifié par le paramètre.
template<
typename _Function
>
void run(
const _Function& _Func
);
template<
typename _Function
>
void run(
const _Function& _Func,
location& _Placement
);
template<
typename _Function
>
void run(
task_handle<_Function>& _Task_handle
);
template<
typename _Function
>
void run(
task_handle<_Function>& _Task_handle,
location& _Placement
);
Paramètres
_Function
Type de l'objet de fonction qui sera appelé pour exécuter le corps du handle de tâche._Func
Fonction qui sera appelée pour appeler le corps de la tâche. 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()()._Placement
Une référence à l'emplacement où la tâche représentée par le paramètre _Func devrait s'exécuter._Task_handle
Handle au travail qui est planifié. 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 wait ou run_and_wait a été appelée sur cet objet task_group.
Notes
Le runtime planifie la fonction de travail fournie pour s'exécuter ultérieurement, qui peut être après le retour de l'appel de la fonction. Cette méthode utilise un objet task_handle (page éventuellement en anglais) pour conserver une copie de la fonction de travail fournie. Par conséquent, aucune modification d'état se produisant dans un objet de fonction que vous passez à cette méthode ne s'affichera dans votre copie de cet objet de fonction. Vérifiez également que la durée de vie de tous les objets que vous passez par le pointeur ou par référence à la fonction de travail restent valides jusqu'au retour de la fonction de travail.
Si la destruction de task_group résulte d'un déroulement de pile provenant d'une exception, vous n'avez pas besoin de vous assurer qu'un appel a été passé à la méthode wait ou run_and_wait. Dans ce cas, le destructeur annulera et attendra que la tâche représentée par le paramètre _Task_handle se termine.
La méthode lève une exception invalid_multiple_scheduling si le handle de tâche donné par le paramètre _Task_handle a déjà été planifié sur un objet groupe de tâches via la méthode run et qu'aucun appel à la méthode wait ou run_and_wait n'est intervenu sur ce groupe de tâches.
Configuration requise
En-tête : ppl.h
Espace de noms : concurrency
Voir aussi
Référence
task_group::run_and_wait, méthode