MessageEventHandler sendMessageEventHandler = null; foreach (Delegate delegateToInvoke in this.ev_Message.GetInvocationList()) { try { sendMessageEventHandler = (MessageEventHandler)delegateToInvoke; sendMessageEventHandler(this, new MessageEventArgs(message)); } catch(Exception ex) { Console.WriteLine("Exception whilst invoking delegate: " + ex.ToString()); this.ev_Message -= sendMessageEventHandler; } }