/* Action(EventThread,string callerEvent,T eventParameter */ public static void RegisterEventHandler <T>(string eventName, Action <CoroutineEventThread, string, T> action) { var eventDescriptor = new CoroutineEventDescriptor(eventName, (thread, caller, par) => { action( _eventThread, caller, (T)par); } , typeof(T)); _eventThread._eventQueue.Enqueue(eventDescriptor); }
public static void RegisterEventHandler <T>(string eventName, IEventHandler <T> eventhandler) { var eventDescriptor = new CoroutineEventDescriptor(eventName, (thread, caller, par) => { try { eventhandler.Run(_eventThread, caller, (T)par); eventhandler.OnSuccess(); } catch (Exception ex) { eventhandler.OnError(ex); } } , typeof(T)); _eventThread._eventQueue.Enqueue(eventDescriptor); }
public ExecEventCoroutine(CoroutineEventDescriptor handler, EventMessage newEvt) { this._handler = handler; this._newEvt = newEvt; }