Modèles de conception pour la programmation asynchrone

Mise à jour : novembre 2007

Les opérations asynchrones sont généralement utilisées pour effectuer des tâches dont l'exécution est susceptible de durer longtemps, par exemple l'ouverture de fichiers volumineux, la connexion à des ordinateurs distants ou l'interrogation d'une base de données. Une opération asynchrone s'exécute dans un thread distinct du thread principal de l'application. Lorsqu'une application appelle des méthodes pour exécuter une opération de façon asynchrone, l'application peut continuer à s'exécuter pendant que la méthode asynchrone exécute sa tâche.

Le .NET Framework fournit deux modèles de design pour les opérations asynchrones :

  • Opérations asynchrones qui utilisent des objets IAsyncResult.

  • Opérations asynchrones qui utilisent des événements.

Le modèle de design IAsyncResult est adapté à un large éventail de modèles de programmation mais il est plus complexe à apprendre et fournit une souplesse dont la plupart des applications n'ont pas besoin. Lorsque c'est possible, les concepteurs de bibliothèques de classes doivent implémenter des méthodes asynchrones à l'aide du modèle piloté par évènement. Dans certains cas, le Concepteur de bibliothèques doit également implémenter le modèle basé sur IAsyncResult.

Pour obtenir de la documentation sur les opérations asynchrones qui utilisent des événements, consultez Vue d'ensemble du modèle asynchrone basé sur des événements.

La programmation asynchrone est une fonctionnalité prise en charge par de nombreuses zones du .NET Framework, notamment :

  • E/S de fichier, E/S de flux, E/S de socket

  • Réseau.

  • Canaux d'accès distant (HTTP, TCP) et proxies

  • Services Web XML créés à l'aide d'ASP.NET

  • Web Forms ASP.NET

  • Mise en file d'attente de messages à l'aide de la classe MessageQueue.

Dans cette section

Voir aussi

Concepts

E/S sur fichier asynchrones

Référence

AsyncCallback

IAsyncResult

Delegate

AsyncOperationManager

BackgroundWorker