public void OnEmploiChanged(int id_en, string notification) { if (EmploiChanged != null) { EmploiChangedEvent notifDelegate = null; Delegate[] invocationList_ = null; try { invocationList_ = EmploiChanged.GetInvocationList(); } catch (MemberAccessException ex) { throw ex; } if (invocationList_ != null) { lock (this) { foreach (Delegate del in invocationList_) { notifDelegate = (EmploiChangedEvent)del; WrapperDelegate wrDel = new WrapperDelegate(BeginSend); AsyncCallback callback = new AsyncCallback(EndSend); wrDel.BeginInvoke(id_en, notification, notifDelegate, callback, wrDel); } } } } }
/// <summary> /// Broadcast message to all clients /// </summary> /// <param name="message">message string</param> public void Send(string message) { if (MessageReceived != null) { MessageHandler messageDelegate = null; Delegate[] invocationList_ = null; try { invocationList_ = MessageReceived.GetInvocationList(); } catch (MemberAccessException ex) { throw ex; } if (invocationList_ != null) { lock (this) { foreach (Delegate del in invocationList_) { messageDelegate = (MessageHandler)del; WrapperDelegate wrDel = new WrapperDelegate(BeginSend); AsyncCallback callback = new AsyncCallback(EndSend); wrDel.BeginInvoke(message, messageDelegate, callback, wrDel); } } } } }