2009-10-05 2 views
0

Я изучаю .NET Remoting, и я вижу пример: http://www.mctainsh.com/Articles/Csharp/RemoteCallback.aspx#A%5Fsimple%5Fexample, все работает хорошо. Теперь моя проблема в том, что если я попытаюсь запустить другой клиент, сервер не обратится к всем подключенным клиентам, а только к последнему. Как я могу отправить обратный вызов всем клиентам?.NET Remoting - как обратный вызов для всех подключенных клиентов?

+0

Пожалуйста, задайте свой вопрос один раз. –

+0

Как небольшое примечание к заметке о том, что события не масштабируются в некоторых сценариях (особенно в Интернете). Ссылка: http://static.thinktecture.com/Resources/ArchitectureBriefings/RemotingBestPractices.pdf. В большинстве приложений они подходят для использования, особенно для локально используемых приложений, но в большой инфструктуре я думаю, что вам рекомендуется избегать их. – Quibblesome

ответ

0

Попытка изменить эту часть кода:

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

в:

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

Прямо сейчас, события не добавляются в список, но s_notify настроен на запуск другого обработчика событий на каждый add.

+0

Спасибо вам большое! Это работает :) – Maiori

+0

В качестве примечания, IMHO пример кода в приведенной вами ссылке является довольно неполным (например, отсутствующее событие удалить аксессуар, и что такое сделка с «Этот вызов вызовет исключение» в FireNewBroadcastedMessageEvent? лучше просто проверить, является ли s_notify null?). Попробуйте Google для получения еще нескольких примеров, чтобы получить более общую картину. – Groo