Programmation asynchrone à l'aide de délégués

Les délégués permettent d’appeler une méthode synchrone de manière asynchrone. Lorsque vous appelez un délégué de manière synchrone, la méthode Invoke appelle la méthode cible directement sur le thread actuel. Si la méthode BeginInvoke est appelée, le common language runtime (CLR) met en file d’attente la demande et retourne immédiatement à l’appelant. La méthode cible est appelée de façon asynchrone sur un thread du pool de threads. Le thread d’origine, qui a envoyé la demande, est libre de continuer à s’exécuter en parallèle avec la méthode cible. Si une méthode de rappel a été spécifiée dans l’appel à la méthode BeginInvoke, la méthode de rappel est appelée lorsque la méthode cible se termine. Dans la méthode de rappel, la méthode EndInvoke obtient la valeur de retour et d’éventuels paramètres d’entrée/sortie ou de sortie uniquement. Si aucune méthode de rappel n’est spécifiée lors de l’appel à BeginInvoke, EndInvoke peut être appelé depuis le thread qui a appelé BeginInvoke.

Important

Les compilateurs doivent émettre des classes déléguées avec les méthodes Invoke, BeginInvoke et EndInvoke à l’aide de la signature de délégué spécifiée par l’utilisateur. Les méthodes BeginInvoke et EndInvoke doivent être décorées comme étant natives. Étant donné que ces méthodes sont marquées comme étant natives, le CLR fournit automatiquement l’implémentation au moment du chargement de la classe. Le chargeur garantit qu’elles ne sont pas remplacées.

Dans cette section

Appel de méthodes synchrones de façon asynchrone
Décrit l’utilisation de délégués pour effectuer des appels asynchrones à des méthodes ordinaires et fournit des exemples de code simples qui présentent les quatre façons d’attendre un appel asynchrone à retourner.

Modèle asynchrone basé sur les événements (EAP)
Décrit la programmation asynchrone dans .NET.

Voir aussi