/// <summary> /// 计时器运行 /// </summary> void Run() { if (timers.Count == 0) { return; } for (int i = 0; i < timers.Count; i++) { TimerInfo o = timers[i]; if (o.timerState == TimerState.Delete || o.timerState == TimerState.Stop) { continue; } o.Tick(Interval); } /////////////////////////清除标记为删除的事件/////////////////////////// for (int i = timers.Count - 1; i >= 0; i--) { if (timers[i].timerState == TimerState.Delete) { timers.Remove(timers[i]); } } }
static int Tick(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); TimerInfo obj = (TimerInfo)ToLua.CheckObject(L, 1, typeof(TimerInfo)); float arg0 = (float)LuaDLL.luaL_checknumber(L, 2); obj.Tick(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }