Partager via


Accès distant asynchrone

La programmation asynchrone dans un scénario d'accès distant est identique à la programmation asynchrone dans un domaine d'application ou un contexte unique, à l'exception de la configuration et des exigences spécifiques à .NET Remoting. Pour obtenir un exemple complet qui utilise .NET Remoting et les délégués synchrones et asynchrones, voir Exemple d'accès distant : accès distant asynchrone.

Tout comme pour la programmation asynchrone de domaine d'application unique, l'utilisation de la programmation asynchrone dans un scénario .NET Remoting implique les points suivants :

  • L'appelant décide si un appel distant particulier est asynchrone.

  • Les types distants ne sont pas tenus de prendre explicitement en charge le comportement asynchrone de leurs clients.

  • Le runtime applique une sécurité complète des types.

  • Vous devez utiliser de manière appropriée les objets System.Threading pour faire attendre ou synchroniser vos méthodes.

Cependant, dans une application qui appelle au-delà des limites de contexte ou de domaine d'application, .NET Remoting nécessite que vous configuriez le système .NET Remoting et que vous vous assuriez que votre modèle de programmation client se qualifie également comme cible pour un appel distant. La raison en est relativement simple : si vous utilisez des appels asynchrones, vous pouvez utiliser une fonction de rappel que le système .NET Remoting appellera à partir du serveur. Par exemple, si vous passez un délégué à une méthode statique (qui ne peut pas être distante) ou oubliez de définir à "0" un port pour votre canal (pour permettre au système de sélectionner un port client en votre nom), votre appel au serveur peut aboutir, mais vous n'aurez aucun moyen d'obtenir le résultat car le rappel vers votre client n'aboutira pas.

Votre client n'a pas besoin d'étendre MarshalByRefObject ni de configurer un type distant lui-même, mais en dehors de cela il doit suivre les mêmes règles que n'importe quel type distant destiné à être un serveur :

  • Une instance doit recevoir la fonction de rappel.

  • Un canal doit être inscrit pour écouter la fonction de rappel.

Voir aussi

Tâches

Comment : Appeler les méthodes d'un objet distant asynchrone

Concepts

Problèmes liés aux méthodes d'appel d'objets distants asynchrones
Exemple d'accès distant : Accès distant asynchrone
Configuration d'applications distantes

Autres ressources

Vue d'ensemble de .NET Framework Remoting