private void _ProcessEvent(Event Event, List<sEventHandler> handlers) { if (Event.IsSynchronous) { foreach (sEventHandler handler in handlers) { try { handler.Handler.ProcessEvent(Event); } catch (Exception e) { } } } else { foreach (sEventHandler handler in handlers) { Thread th = new Thread(new ParameterizedThreadStart(_ProcessEventAsync)); th.IsBackground = true; th.Start(new object[]{ Event, handler }); } } }
private static void _ProcessEventInChildren(Messages.Event Event) { System.sDomain[] doms = System.Domains; foreach (System.sDomain dom in doms) { dom.ProcessEvent(Event); } }
public void ProcessEvent(Messages.Event Event) { if (Event.IsSynchronous) { _processEvent.Invoke(Event); } else { _processEvent.BeginInvoke(Event, null, null); } }
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)); } }
public static void TriggerEvent(IEvent Event) { Messages.Event evnt = new Messages.Event(Event); _core.AbsoluteParent.ProcessEvent(evnt); }