Partager via


Tâches légères

Ce document décrit le rôle des tâches légères dans le runtime d'accès concurrentiel.Une tâche légère est une tâche que vous planifiez directement à partir d'un objet concurrency::Scheduler ou concurrency::ScheduleGroup.Une tâche légère s'apparente à la fonction que vous fournissez à la fonction CreateThread d'API Windows.Par conséquent, les tâches légères sont utiles lorsque vous adaptez du code existant de façon à utiliser les fonctionnalités de planification du runtime d'accès concurrentiel.Le runtime d'accès concurrentiel lui-même utilise des tâches légères pour planifier des agents asynchrones et envoyer des messages entre des blocs de messages asynchrones.

ConseilConseil

Le runtime d'accès concurrentiel fournit un planificateur par défaut. Par conséquent, vous n'êtes pas tenu d'en créer un dans votre application.Étant donné que le planificateur de tâches vous aide à affiner les performances de vos applications, nous vous recommandons de commencer avec la Bibliothèque de modèles parallèles ou la Bibliothèque d'agents asynchrones si vous ne connaissez pas encore le runtime d'accès concurrentiel.

Les tâches légères présentent des charges inférieures à celles des agents asynchrones et des groupes de tâches.Par exemple, le runtime ne vous informe pas lorsqu'une tâche légère se termine.De plus, il n'intercepte pas et ne gère pas les exceptions levées à partir d'une tâche légère.Pour plus d'informations sur la gestion des exceptions et les tâches légères, consultez Gestion des exceptions dans le runtime d'accès concurrentiel.

Pour la plupart des tâches, nous vous recommandons d'utiliser des fonctionnalités plus fiables telles que les groupes de tâches et les algorithmes parallèles, car elles simplifient la division de tâches complexes en tâches plus simples.Pour plus d'informations sur les groupes de tâches, consultez Parallélisme des tâches (runtime d'accès concurrentiel).Pour plus d'informations sur les algorithmes parallèles, consultez Algorithmes parallèles.

Pour créer une tâche léger, appelez le concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask, ou concurrency::Scheduler::ScheduleTask méthode.Pour attendre la fin d'une tâche léger, attendez que le Planificateur parent arrêter ou utiliser un mécanisme de synchronisation tels qu'un concurrency::event objet.

Exemple

Pour obtenir un exemple qui illustre comment adapter du code existant de façon à utiliser une tâche légère, consultez Procédure pas à pas : adaptation d'un code existant pour l'utilisation de tâches légères.

Voir aussi

Tâches

Procédure pas à pas : adaptation d'un code existant pour l'utilisation de tâches légères

Concepts

Planificateur de tâches (runtime d'accès concurrentiel)