2010-09-21 21 views
1

Je dois effectuer une communication entre processus en utilisant .NET Remoting. Pour cela, je voudrais partager certaines données sous la forme de données (objets) & méthodes. Existe-t-il un moyen par lequel mon client .NET Remoting peut détecter qu'il y a des données partagées ou non, si elles ne font que collecter ces données? Chaque serveur de serveur de temps partage les données avec ses Marshaling, les méthodes et les objets, il devrait être conscient pour le client que c'est un autre processus.Comment éveiller et activer les clients du serveur .NET Remoting pour extraire des données de manière asynchrone?

Le serveur peut avoir plusieurs clients et les données peuvent être partagées sur plusieurs clients (clients spécifiques ou i.e diffusés pour chaque client exécuté en tant que processus séparé).

Sur le côté client, je voudrais avoir un thread dédié unique pour vérifier les données partagées, si elle arrive, il serait recueillir, dormir autrement. Ou d'une manière ou d'une autre, chaque fois que le serveur envoie un événement à un client spécifique ou à plusieurs clients pour les informer des données arrivées et partagées.

Est-ce la fonctionnalité que les événements .NET Remoting exposent? Mon serveur .NET Remoting est un processus C# et le client est un processus C++/CLI.

Cordialement Usman

+0

L'accès distant à la norme NET est considéré comme obsolète. Vous devriez considérer WCF pour votre IPC. –

+0

Pour l'instant, .NET Remoting est incarqué et difficile à remplacer en un temps limité. – Usman

Répondre

1

qui est possible avec .NET Remoting. Le moyen le plus simple serait peut-être de faire en sorte que l'objet distant (le serveur) comprenne un événement auquel les clients peuvent s'abonner. Lorsque le serveur a des données qu'il souhaite partager, il déclenche simplement cet événement et tous les clients qui s'abonnent à l'événement reçoivent une notification avec les données.

+0

Je dois envoyer des chaînes et des messages pour mes clients de serveur .Remoting après avoir créé ces clients par le serveur lui-même (le serveur créera des processus séparés, c'est-à-dire des clients) auxquels il doit envoyer des messages et des données. – Usman

+0

Je dois envoyer des chaînes et des messages pour mes clients de serveur .Remoting après avoir créé ces clients par le serveur lui-même (le serveur créera des processus séparés par rapport aux clients) auxquels il doit envoyer des messages et des données. Chaque fois que le client (par exemple, un processus) se lancera, il enverra sa référence au serveur et le serveur attachera son instance dans sa liste de répartiteurs. et le client à l'autre extrémité attendra infiniment ou ira dans le fil de sommeil. Chaque fois que le serveur a besoin de partager son client de données, il se réveille et son thread se réveille et peut traiter les données partagées. Tout exemple de code qui va le démontrer. – Usman

+0

Dans votre situation, définir un événement dans le serveur et s'y abonner dans le client est la solution. Je suis désolé de ne pas avoir d'échantillon de code à partager avec vous. –