Partager via


task::task, constructeur (C++ REST SDK)

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'expression lambda ou l'objet de 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 tant que vous ne lui assignez pas une tâche valide. Les méthodes telles que get, wait ou then lèveront une exception invalid_argument en cas d'appel pour une tâche créée par défaut.

Une tâche créée à partir d'un objet 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 classe 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'une expression lambda qui retourne une interface IAsyncInfo atteignent leur état terminal lorsque l'opération ou l'action asynchrone Windows Runtime se termine. De même, les tâches créées à partir d'une expression lamda qui retourne un objet task<result_type> atteignent leur état terminal lorsque la tâche interne atteint son état terminal, et non lorsque le résultat de l'expression lamda est retourné.

task se comporte comme un pointeur intelligent dont le passage par valeur est sécurisé. Il 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 retournant une telle interface sont uniquement disponibles 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 : pplxtasks.h

Espace de noms : pplx

Voir aussi

Référence

task, classe