Maison >développement back-end >C++ >Tâche.run vs async-await dans WPF: Quand dois-je utiliser qui pour les performances d'interface utilisateur optimales?
Le choix de la tâche.run et async-await dans les applications WPF: considérations d'architecture
Dans les applications WPF, choisissez d'utiliser Task.Run ou Async-Await, surtout lorsqu'il y a un stand dans l'interface utilisateur, c'est un problème courant. Afin de résoudre ce problème, les facteurs suivants doivent être pris en compte:
<.> 1. Bloc de thread UI:
Async-Await n'est pas réalisé sur le fil d'arrière-plan. Si l'opération d'attente est une tâche à forte intensité de CPU, elle peut entraîner l'interface utilisateur. Pour éviter cela, utilisez Task.Run pour confier ces tâches au thread d'arrière-plan.
<.> 2. Optimisation de l'efficacité du thread:
Utiliser la tâche.run pour emballer l'appel asynchrone le plus extérieur pour réduire la surcharge du thread du .NET. Cela garantit que toutes les opérations asynchrones-Await ultérieures de l'appel seront effectuées sur le thread d'arrière-plan. <.> 3. Code et méthode dense CPU:
Évitez d'utiliser Task.Run dans le code réutilisable. Au lieu de cela, utilisez Task.Run pour appeler la méthode intensive du CPU et pour expliquer clairement ses caractéristiques intensives du CPU dans la signature de la méthode. Cette séparation permet d'être réutilisées de manière flexible sans affecter l'efficacité du thread de fond.
Optimisation du thread UI Meilleures pratiques:
En plus de l'utilisation de tâche.Run avec soin, suivez les critères suivants pour maintenir le fil d'interface utilisateur rapide:
Gardez le fonctionnement du fil d'interface utilisateur dans les 50 millisecondes pour éviter le blocage.
limiter la continuation du fil d'interface utilisateur à environ 100 fois par seconde.Utilisez ConfigureAwait (False) pour optimiser les performances lors de la restauration des opérations d'attente sur le thread d'interface utilisateur.
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!