Partager via


task::task, constructeur

Construit un objet task.

task();

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param);

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param, const task_options& _TaskOptions);

task(
   const task& _Other
);

task(
   task&& _Other
);

Paramètres

  • _Ty
    Type du paramètre à partir duquel la tâche doit être construite.

  • _Param
    Paramètre à partir duquel la tâche doit être construite. Il peut s'agir d'une expression lambda, d'un objet de fonction, d'un objet task_completion_event<result_type> ou d'une interface Windows::Foundation::IAsyncInfo si vous utilisez des tâches dans votre application Windows Store. L'objet lambda ou fonction doit être un type équivalent à std::function<X(void)>, où X peut être une variable de type result_type, task<result_type>, ou une interface Windows::Foundation::IAsyncInfo dans les applications Windows Store.

  • _TaskOptions
    Les options de tâche incluent le jeton d'annulation, le planificateur, etc.

  • _Other
    Objet task source.

Notes

Le constructeur par défaut pour task est uniquement présent pour permettre l'utilisation des tâches dans des conteneurs. Une tâche créée par défaut ne peut pas être utilisée jusqu'à ce que vous lui assigniez une tâche valide. Les méthodes telles que get, wait ou then lèveront une exception invalid_argument en cas d'appel lors d'une tâche créée par défaut.

Une tâche créée à partir d'un task_completion_event s'achève (et ses continuations sont planifiées) lorsque l'événement d'achèvement de tâche est défini.

La version du constructeur qui accepte un jeton d'annulation crée une tâche qui peut être annulée en utilisant la cancellation_token_source à partir de laquelle le jeton a été obtenu. Les tâches créées sans jeton d'annulation ne sont pas annulables.

Les tâches créées à partir d'une interface Windows::Foundation::IAsyncInfo ou d'un objet lambda qui retourne une portée d'interface IAsyncInfo atteignent leur état terminal lorsque l'opération ou l'action asynchrone de Windows Runtime se termine. De même, les tâches créées à partir d'un objet lamda qui retourne une portée task<result_type> atteignent leur état terminal lorsque la tâche interne atteint son état terminal, et pas lorsque l'objet lamda retourne.

task se comporte comme un pointeur intelligent et est sécurisé pour passer autour de la valeur. Elle est accessible par plusieurs threads sans nécessiter de verrous.

Les surcharges de constructeur qui acceptent une interface Windows::Foundation::IAsyncInfo ou une expression lambda qui retourne une telle interface, sont disponibles uniquement pour les applications Windows Store.

Pour plus d'informations, consultez Parallélisme des tâches (runtime d'accès concurrentiel).

Configuration requise

En-tête : ppltasks.h

Espace de noms : concurrency

Voir aussi

Référence

task (Concurrency Runtime), classe