0
は、私がクライアントにイベントを発射するために、次のコードを使用しようとしました:イベント問題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;
}
}
私はクライアント側でネットワークの問題をシミュレートすると、クライアントのデリゲートが期待どおりに - =によって削除され、MessageArrivedがnullになりました。
しかし、ネットワークが復元されると、クライアントは接続しようとし、リモートオブジェクトを取得し、起動時に同じようにイベントを再登録します。MessageArrivedがnullでないため、再登録が成功したようです。
問題はまだ削除された代理人を呼び出す例外があります。私が理解するように、これはexpcetion cozを上げてはならない。クライアントは再びオンラインになり、再接続()とconnect()メソッドは同じコードを共有します...
誰かが私を助けることができますか?