public void ProcessEvent(Event Event) { if (Event.NeedsToBeProcessed(AppDomain.CurrentDomain)) { Event.MarkInvokedInDomain(AppDomain.CurrentDomain); sEventHandler[] tmp; _mut.WaitOne(); tmp = new sEventHandler[_handlers.Count]; _handlers.CopyTo(tmp, 0); _mut.ReleaseMutex(); if (Event.IsSecurred) { List <sEventHandler> handlers = new List <sEventHandler>(); foreach (sEventHandler hndlr in tmp) { if (Event.IsHandlerAllowed(AppDomain.CurrentDomain.FriendlyName, hndlr.Handler.GetType().FullName)) { handlers.Add(hndlr); } } } else { _ProcessEvent(Event, new List <sEventHandler>(tmp)); } } }
private void _ProcessEventAsync(object obj) { Event Event = (Event)((object[])obj)[0]; sEventHandler handler = (sEventHandler)((object[])obj)[1]; try { handler.Handler.ProcessEvent(Event); } catch (Exception e) { } }
private void ProcessEvent(SocketEvent message) { sEventHandler[] handlers; lock (_handlers) { handlers = new sEventHandler[_handlers.Count]; _handlers.CopyTo(handlers, 0); } foreach (sEventHandler eh in handlers) { if (eh.HandlesEvent(message)) { eh.Handler.BeginInvoke(message, new AsyncCallback(ProcessingComplete), this); } } }
public void ProcessEvent(Event Event) { if (Event.NeedsToBeProcessed(AppDomain.CurrentDomain)) { Event.MarkInvokedInDomain(AppDomain.CurrentDomain); sEventHandler[] tmp; _mut.WaitOne(); tmp = new sEventHandler[_handlers.Count]; _handlers.CopyTo(tmp, 0); _mut.ReleaseMutex(); if (Event.IsSecurred) { List<sEventHandler> handlers = new List<sEventHandler>(); foreach (sEventHandler hndlr in tmp) { if (Event.IsHandlerAllowed(AppDomain.CurrentDomain.FriendlyName, hndlr.Handler.GetType().FullName)) handlers.Add(hndlr); } }else _ProcessEvent(Event, new List<sEventHandler>(tmp)); } }
private void ProcessEvent(SocketEvent message) { sEventHandler[] handlers; lock (_handlers) { handlers = new sEventHandler[_handlers.Count]; _handlers.CopyTo(handlers, 0); } foreach (sEventHandler eh in handlers) { if (eh.HandlesEvent(message)) eh.Handler.BeginInvoke(message, new AsyncCallback(ProcessingComplete), this); } }