Maison >développement back-end >C++ >Async / Await vs BackgroundWorker: Quand dois-je utiliser lequel pour les opérations asynchrones?
.NET 4.5 et C # 5 ont introduit des fonctionnalités asynchrones / attend, ce qui a apporté de nouvelles options pour la programmation asynchrone, et a également déclenché une comparaison avec l'ancien outil de gestion des tâches de fond. Les deux sont utilisés pour gérer les opérations asynchrones, mais leur rôle et leurs scénarios d'application sont très différents.
Async / Await: attendre asynchrone
Async / Await est une grammaire linguistique qui simplifie la programmation asynchrone. Il permet aux développeurs d'écrire du code asynchrone exécutant simultanément sans bloquer les threads d'interface utilisateur pour assurer la réponse de l'interface utilisateur. Async / Await est généralement basé sur le mode asynchrone de tâche (TAP), qui contient des opérations asynchrones et son mécanisme de continuation.
BackgroundWorker: Backstage Task Management
BackgroundWorker est utilisé pour gérer les tâches de fonctionnement à long terme dans les threads d'arrière-plan, qui est indépendant du thread d'interface utilisateur. Il fournit un mécanisme simple qui désinstalle le fonctionnement lourd vers l'arrière-plan sans affecter la vitesse de réponse de l'interface utilisateur. BackgroundWorker a un rapport de progression construit et une fonction d'annulation, simplifiant la réalisation des tâches asynchrones. quand utiliser async / attendre
async / attend convient particulièrement aux scènes suivantes:
Les opérations d'E / S doivent être effectuées de manière asynchrone, comme l'obtention de données à partir de services réseau ou la lecture de fichiers.
Utiliser la commission ou l'incident asynchrone pour permettre à Asynchrone de poursuivre les opérations existantes.
Le processus dense du calcul qui doit être exécuté en arrière-plan.
Vous devez signaler les progrès ou annuler l'opération à partir du fil d'interface utilisateur.Vous devez désinstaller un grand nombre de travaux à un fil séparé pour éviter le gel de l'interface utilisateur.
Async / Await se concentre principalement sur la programmation asynchrone et utilise le TAP pour effectuer des opérations; Async / Await convient à l'interaction avec les opérations d'E / S et d'autres structures asynchrones, tandis que Backgroundworker est conçu pour concevoir pour des tâches de fonctionnement longues qui peuvent ne pas impliquer des opérations asynchrones.
La syntaxe linguistique asynchrone / Await et C # sont transparentes, fournissant des méthodes d'écriture de code asynchrones simples et élégantes;
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!