2009-10-05 6 views
0

J'étudie le .NET Remoting et je vois un exemple sur: http://www.mctainsh.com/Articles/Csharp/RemoteCallback.aspx#A%5Fsimple%5Fexample, tout fonctionne bien. Maintenant, mon problème est que si j'essaie de démarrer un autre client, le serveur ne rappelle pas tous les clients connectés mais seulement pour le dernier. Comment puis-je envoyer un rappel à tous les clients?.NET Remoting - Comment rappel à tous les clients connectés?

+0

Ne posez votre question qu'une seule fois. –

+0

Comme un petit commentaire remarque que les événements ne sont pas à l'échelle v.well dans certains scénarios (en particulier en ligne). Réf: http://static.thinktecture.com/Resources/ArchitectureBriefings/RemotingBestPractices.pdf. Dans la plupart des applications, ils sont agréables à utiliser, en particulier les applications utilisées localement, mais dans la grande infrastructure, je pense qu'il est conseillé de les éviter. – Quibblesome

Répondre

0

Essayez de changer cette partie de code:

public event NotifyCallback Notify 
    { 
     add { s_notify = value; } 
     remove { /* */ } 
    } 

dans:

public event NotifyCallback Notify 
    { 
     add { s_notify += value; } 
     remove { s_notify -= value; } 
    } 

En ce moment, les événements ne sont pas ajoutés à la liste, mais s_notify est mis à feu un autre gestionnaire d'événements sur chaque add.

+0

Merci beaucoup! Cela fonctionne :) – Maiori

+0

Comme une note de côté, à mon humble avis l'exemple de code dans le lien que vous avez fourni est plutôt incomplète (par exemple, l'événement de suppression d'événement manquant, et quel est le problème avec "Cet appel lèvera une exception" dans FireNewBroadcastedMessageEvent? mieux vaut simplement vérifier si s_notify est nul?). Essayez de google pour d'autres exemples pour obtenir une image plus large. – Groo

Questions connexes