Création de tâches .NET : Task.Run() vs Task.Factory.StartNew()
La classe Task
du framework .NET facilite la programmation asynchrone. Alors que Task.Factory.StartNew()
a longtemps été la norme pour créer de nouvelles tâches, Task.Run()
propose une alternative plus simple. Cet article clarifie les distinctions et vous guide dans le choix de la méthode appropriée.
Task.Run() : Simplicité pour les tâches quotidiennes
Task.Run()
rationalise la création de tâches, idéal pour les scénarios où les paramètres par défaut suffisent. Sa facilité d'utilisation le rend parfait pour les opérations asynchrones simples.
Task.Factory.StartNew() : contrôle et personnalisation avancés
Task.Factory.StartNew()
offre un contrôle granulaire sur le comportement des tâches, permettant la personnalisation de :
LongRunning
).Quand utiliser lequel ?
Pour les tâches simples sans exigences particulières, Task.Run()
est le choix le plus concis. Cependant, pour les scénarios complexes exigeant un contrôle précis, Task.Factory.StartNew()
offre la flexibilité nécessaire.
Exemple illustratif : opérations de longue durée
Supposons que vous ayez besoin d'une tâche de longue durée qui ne devrait pas utiliser de thread de pool de threads. Task.Run()
ne permet pas cela. Task.Factory.StartNew()
, cependant, permet cela grâce à l'option LongRunning
:
<code class="language-csharp">Task.Factory.StartNew(..., TaskCreationOptions.LongRunning);</code>
Résumé
Task.Run()
simplifie le lancement des tâches, tandis que Task.Factory.StartNew()
offre un contrôle supérieur. Comprendre leurs différences est essentiel pour écrire du code asynchrone efficace et adaptable. Choisissez la méthode qui correspond le mieux à vos besoins spécifiques en matière de programmation asynchrone.
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!