Vue d’ensemble d’asyncAsync Overview

Il n’y a pas si longtemps, il suffisait d’acheter un PC ou un serveur plus récent pour que les applications soient plus rapides. Mais ce n’est plus le cas maintenant.Not so long ago, apps got faster simply by buying a newer PC or server and then that trend stopped. En fait, c’est même tout le contraire.In fact, it reversed. Les téléphones mobiles utilisent des processeurs ARM 1 GHz à cœur unique et les charges de travail serveur sont passées aux machines virtuelles.Mobile phones appeared with 1ghz single core ARM chips and server workloads transitioned to VMs. Les utilisateurs veulent toujours une interface utilisateur réactive et les chefs d’entreprise veulent des serveurs qui s’adaptent à leur activité.Users still want responsive UI and business owners want servers that scale with their business. La transition vers le mobile et le cloud ainsi qu’une population de plus de 3 milliards d’utilisateurs connectés à Internet ont donné naissance à un nouvel ensemble de modèles logiciels.The transition to mobile and cloud and an internet-connected population of >3B users has resulted in a new set of software patterns.

  • Les applications clientes doivent être toujours actives, toujours connectées, constamment réactives à l’interaction de l’utilisateur (interface tactile, par exemple) et en haut du classement des magasins d’applications !Client applications are expected to be always-on, always-connected and constantly responsive to user interaction (for example, touch) with high app store ratings!
  • Les services doivent gérer les pics de trafic en ayant la possibilité de monter et descendre en puissance facilement.Services are expected to handle spikes in traffic by gracefully scaling up and down.

La programmation asynchrone est une technique clé qui facilite le blocage des E/S et des opérations simultanées sur plusieurs cœurs.Async programming is a key technique that makes it straightforward to handle blocking I/O and concurrent operations on multiple cores. .NET offre aux applications et services la possibilité d’être réactifs et élastiques avec des modèles de programmation en C#, VB et F# asynchrones au niveau du langage et faciles à utiliser..NET provides the capability for apps and services to be responsive and elastic with easy-to-use, language-level asynchronous programming models in C#, VB, and F#.

Pourquoi écrire du code asynchrone ?Why Write Async Code?

Les applications modernes utilisent beaucoup d’E/S de fichier et de réseau.Modern apps make extensive use of file and networking I/O. Les API d’E/S se bloquent par défaut, ce qui se traduit par une expérience utilisateur et une utilisation du matériel médiocres, sauf si vous avez l’intention d’apprendre et d’utiliser des modèles complexes.I/O APIs traditionally block by default, resulting in poor user experiences and hardware utilization unless you want to learn and use challenging patterns. Les API asynchrones basées sur des tâches et le modèle de programmation asynchrone au niveau du langage inversent ce modèle en faisant de l’exécution asynchrone la valeur par défaut avec quelques nouveaux concepts à découvrir.Task-based async APIs and the language-level asynchronous programming model invert this model, making async execution the default with few new concepts to learn.

Le code asynchrone présente les caractéristiques suivantes :Async code has the following characteristics:

  • Il gère davantage de demandes de serveur en cédant des threads pour traiter plus de demandes quand il attend le retour des demande d’E/S.Handles more server requests by yielding threads to handle more requests while waiting for I/O requests to return.
  • Il permet aux interfaces utilisateur d’être plus réactives en cédant des threads à l’interaction de l’interface utilisateur quand il attend les demandes d’E/S et en transmettant les tâches d’exécution longue aux autres cœurs de processeur.Enables UIs to be more responsive by yielding threads to UI interaction while waiting for I/O requests and by transitioning long-running work to other CPU cores.
  • De nombreuses API .NET plus récentes sont asynchrones.Many of the newer .NET APIs are asynchronous.
  • Il est facile d’écrire du code asynchrone dans .NET !It's easy to write async code in .NET!

Étapes suivantesWhat's next?

Pour plus d’informations, consultez la rubrique Présentation détaillée des opérations asynchrones.For more information, see the Async in depth topic.

La rubrique Modèles de programmation asynchrone fournit une vue d’ensemble des trois modèles de programmation asynchrone pris en charge dans .NET :The Asynchronous Programming Patterns topic provides an overview of the three asynchronous programming patterns supported in .NET:

Pour plus d’informations sur le modèle de programmation basée sur des tâches recommandé, consultez la rubrique Programmation asynchrone basée sur les tâches.For more information about recommended task-based programming model, see the Task-based asynchronous programming topic.