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 Scheduler ou 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.
Conseil
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égère, appelez les méthodes Concurrency::ScheduleGroup::ScheduleTask, Concurrency::CurrentScheduler::ScheduleTask ou Concurrency::Scheduler::ScheduleTask. Pour attendre qu'une tâche légère se termine, attendez que le planificateur parent s'arrête ou utilisez un mécanisme de synchronisation tel qu'un objet Concurrency::event.
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
Concepts
Planificateur de tâches (runtime d'accès concurrentiel)
Autres ressources
Procédure pas à pas : adaptation d'un code existant pour l'utilisation de tâches légères
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Juillet 2010 |
Réorganisation du contenu. |
Améliorations apportées aux informations. |