Délégués asynchrones
Les délégués asynchrones permettent d'appeler une méthode synchrone de manière asynchrone. Lorsqu'un délégué est appelé de manière synchrone, la méthode Invoke appelle directement la méthode cible sur le thread en cours. Si le compilateur prend en charge les délégués asynchrones, il générera la méthode Invoke et les méthodes BeginInvoke et EndInvoke. Si la méthode BeginInvoke est appelée, le Common Language Runtime mettra la demande en file d'attente et le retour à l'appelant sera immédiat. La méthode cible sera appelée sur un thread à partir du pool de threads. Le thread d'origine, qui a soumis la demande, est libre de poursuivre en parallèle son exécution vers la méthode cible, qui s'exécute sur un thread du pool. Si un rappel a été spécifié sur BeginInvoke, il sera appelé lors du retour de la méthode cible. Dans le rappel, la méthode EndInvoke est utilisée pour obtenir la valeur de retour et les paramètres d'entrée/de sortie. Si le rappel n'a pas été spécifié sur BeginInvoke, EndInvoke peut être utilisé sur le thread d'origine qui a soumis une demande.
Remarque Le compilateur Microsoft C# prend actuellement en charge un délégué asynchrone.
Dans cette section
- Utilisation des délégués
Décrit l'implémentation des délégués asynchrones par programme. - Prise en charge du compilateur et du Common Language Runtime
Explique la prise en charge du compilateur pour le runtime, à l'aide de BeginInvoke et EndInvoke avec les signatures de méthode asynchrones. - Méthodes BeginInvoke et EndInvoke du délégué fourni par le compilateur
Aborde les problèmes spécifiques au compilateur avec les méthodes BeginInvoke et EndInvoke. - Exemple de programmation de délégués asynchrones
Illustre l'utilisation de délégués asynchrones dans un exemple simple, qui factorise certains nombres.
Rubrique connexe
- Programmation asynchrone
Décrit l'orientation de la programmation asynchrone avec le .NET Framework.