.NET Remoting - как обратный вызов всем подключенным клиентам?

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


person Maiori    schedule 05.10.2009    source источник
comment
Пожалуйста, задайте свой вопрос только один раз.   -  person Matthew Scharley    schedule 05.10.2009
comment
В качестве небольшого комментария обратите внимание, что в некоторых сценариях (особенно онлайн) события не масштабируются относительно хорошо. Ссылка: static.thinktecture.com/Resources/ArchitectureBriefings/. В большинстве приложений их можно использовать, особенно в приложениях, которые используются локально, но в большой инфраструктуре я думаю, вам рекомендуется их избегать.   -  person Quibblesome    schedule 05.10.2009


Ответы (1)


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

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

в:

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

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

person Groo    schedule 05.10.2009
comment
В качестве побочного примечания, ИМХО, пример кода в предоставленной вами ссылке довольно неполный (например, отсутствует аксессуар удаления события, и какова сделка с этим вызовом, вызовет исключение в FireNewBroadcastedMessageEvent? Не было бы лучше просто проверить, является ли s_notify нулевой?). Попробуйте поискать в Google еще несколько примеров, чтобы получить более широкую картину. - person Groo; 05.10.2009