Maison >développement back-end >C++ >Task.Start(), Task.Run() et Task.Factory.StartNew() : quand devez-vous les utiliser ?
Compréhension approfondie de Task.Start(), Task.Run() et Task.Factory.StartNew()
La bibliothèque parallèle de tâches (TPL) offre plusieurs façons de créer et de planifier des opérations asynchrones. Cet article vise à clarifier les scénarios d'utilisation et les différences de Task.Start(), Task.Run() et Task.Factory.StartNew().
Comparaison de Task.Start(), Task.Run() et Task.Factory.StartNew()
Bien que les trois méthodes puissent créer et démarrer des tâches asynchrones, elles ont des fonctions et des utilisations différentes.
Task.Start()
Task.Start() est une méthode de bas niveau qui nécessite la création et la planification manuelles de tâches. Il a un contrôle limité sur l’exécution des tâches et n’est généralement pas recommandé pour la plupart des scénarios.
Task.Run()
Task.Run() fournit un raccourci vers Task.Factory.StartNew() avec des paramètres spécifiques et sûrs. Il crée une nouvelle tâche sur le planificateur par défaut, avec des options telles que le refus des pièces jointes enfants et l'utilisation des indicateurs d'annulation par défaut.
Task.Factory.StartNew()
Task.Factory.StartNew() est la méthode la plus flexible et la plus puissante. Il permet des options de création et de planification de tâches personnalisées, notamment :
Quand utiliser chaque méthode
Résumé
Pour des raisons plus pratiques, Task.Run() est le principal choix pour les opérations asynchrones. Si vous avez besoin de plus de personnalisation, Task.Factory.StartNew() offre la flexibilité nécessaire. Cependant, évitez d'utiliser Task.Start() sauf si vous avez une bonne raison.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!