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
Vue d'ensemble de la programmation asynchrone
Présente le modèle de design asynchrone basé sur IAsyncResult qui propose un modèle de programmation flexible pour gérer les opérations asynchrones.Appel de méthodes asynchrones à l'aide d'IAsyncResult
Propose des exemples de code qui illustrent les diverses façons possibles pour les applications de détecter la fin d'une opération asynchrone.Programmation asynchrone à l'aide de délégués
Décrit l'appel à une méthode synchrone de façon asynchrone.Programmation multithread avec le modèle asynchrone basé sur les événements
Décrit le modèle asynchrone basé sur les événements qui fournit un modèle de programmation asynchrone utilisant des événements pour la communication inter-threads.