private static bool register(Dictionary <string, List <Pair> > events, string eventname, object obj, string funcname, NetEventFunction fun = null) { deregister(events, eventname, obj, funcname); List <Pair> lst = null; Pair pair = new Pair(); pair.obj = obj; pair.funcname = funcname; pair.method = obj.GetType().GetMethod(funcname); if (pair.method == null) { Dbg.ERROR_MSG("Event::register: " + obj + "not found method[" + funcname + "]"); return(false); } monitor_Enter(events); if (!events.TryGetValue(eventname, out lst)) { lst = new List <Pair>(); lst.Add(pair); //Dbg.DEBUG_MSG("Event::register: event(" + eventname + ")!"); events.Add(eventname, lst); monitor_Exit(events); return(true); } //Dbg.DEBUG_MSG("Event::register: event(" + eventname + ")!"); lst.Add(pair); monitor_Exit(events); return(true); }
public static bool registerOutMsg(object obj, NetEventFunction fun) { string funcname = fun.GetType().Name; return(register(events_out, funcname, obj, funcname)); }