Events .NET远程处理中的事件问题

Events .NET远程处理中的事件问题,events,remoting,reconnect,Events,Remoting,Reconnect,通过学习INGO RAMMER的高级.NET远程处理,我尝试使用以下代码向客户端触发事件: foreach (Delegate del in MessageArrived.GetInvocationList()) { try { mah = (MessageArrivedHandler) del; mah(msg); } catch (Exception e) { Console.WriteLine("Exception occured, will remove Delegate");

通过学习INGO RAMMER的高级.NET远程处理,我尝试使用以下代码向客户端触发事件:

foreach (Delegate del in MessageArrived.GetInvocationList()) 
{
try 
{
mah = (MessageArrivedHandler) del;
mah(msg);
} 
catch (Exception e) 
{
Console.WriteLine("Exception occured, will remove Delegate");
MessageArrived -= mah;
}
}
当我在客户端模拟一个网络问题时,客户端的委托按预期由-=删除,MessageArrival变为null

但是,当网络恢复时,客户端将尝试连接、获取远程对象并重新注册事件,就像它在启动时一样。由于MessageArrived不为null,重新注册似乎成功

问题是,我仍然得到异常将调用随后被删除的委托。据我所知,这不会增加出口,因为。客户端再次联机,重新连接和连接方法共享相同的代码


有人能帮我吗?

检查事件注销是否正常进行。当客户端断开连接时,最好优雅地注销事件