.NET Remoting. Remote Events
От: Caezar  
Дата: 19.02.06 21:11
Оценка:
Никто не сталкивался с такой ситуацией? :

Клиент подписывается на ремоутные ивенты от сервера.
Всё нормально работает, но после некоторого времени не проходит вызов клиентского метода, определённого делегатом для обработки этого ивента.
На серверной стороне никаких эксепшенов.
Может тут GC как-то виноват? //предположение

"генерация" ивента происходит следующим образом (делал как написано в книже Microsoft .NET Remoting)

private    void    NotifyClients(GoodEventArgs args)
{
    Console.WriteLine("NotifyClients called");
    System.Delegate[] invkList = GoodEvent.GetInvocationList();
    IEnumerator ie = invkList.GetEnumerator();
    while(ie.MoveNext())
    {
        GoodEventHandler handler = (GoodEventHandler)ie.Current;
        try
        {
            Console.WriteLine("\tInvoking " + ie.Current.ToString());
            IAsyncResult ar = handler.BeginInvoke(this, args, null, null);
        }

        catch(System.Exception e)
        {
            Console.WriteLine("EXCEPTION: " + e.Message);
            GoodEvent -= handler;
        }
        Console.WriteLine("\tSuccessfully invoked " + ie.Current.ToString());
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.