Example #1
0
    /// <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]);
            }
        }
    }
Example #2
0
 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));
     }
 }