Share via


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

Mise à jour : novembre 2007

Les délégués permettent d'appeler une méthode synchrone de manière asynchrone. Lorsqu'un délégué est appelé de façon synchrone, la méthode Invoke appelle directement la méthode cible sur le thread actif. Si la méthode BeginInvoke est appelée, le Common Language Runtime (CLR) met la requête en file d'attente et retourne immédiatement à l'appelant. La méthode cible est appelée de façon asynchrone sur un thread à partir du pool de threads. Le thread d'origine, qui a envoyé la requête, peut continuer l'exécution 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 lors du retour de la méthode cible. Dans la méthode de rappel, la méthode EndInvoke obtient la valeur de retour et n'importe quel paramètre d'entrée/de sortie ou uniquement de sortie. Si aucune méthode de rappel n'est spécifiée lors de l'appel à BeginInvoke, EndInvoke peut être appelé à partir du thread qui a appelé BeginInvoke.

Remarque importante :

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 natives. Étant donné que ces méthodes sont marquées comme étant natives, le Common Language Runtime fournit automatiquement l'implémentation au moment du chargement de la classe. Le chargeur vérifie qu'elles ne sont pas substituées.

Dans cette section

Rubriques connexes

Voir aussi

Référence

Delegate