예제 #1
0
    public void Update()
    {
        for (int i = m_lstRunningTimer.Count - 1; i >= 0; i--)
        {
            ITimerBase timer = m_lstRunningTimer[i];
            if (timer.IsRunning)
            {
                timer.Update();
            }
            else
            {
                m_lstRemoveTmp.Add(i);
            }
        }

        if (m_lstRemoveTmp.Count > 0)
        {
            for (int i = m_lstRemoveTmp.Count - 1; i >= 0; i--)
            {
                int        idx   = m_lstRemoveTmp[i];
                ITimerBase timer = m_lstRunningTimer[idx];
                m_lstRunningTimer.RemoveAt(idx);
                timer.Recycle();
            }
            m_lstRemoveTmp.Clear();
        }
    }
예제 #2
0
    // 停止一个定时器
    public void RemoveTimer(ITimerBase timer)
    {
        int idx = m_lstRunningTimer.IndexOf(timer);

        if (idx >= 0)
        {
            m_lstRunningTimer.RemoveAt(idx);
        }
    }
예제 #3
0
 // 运行一个定时器
 public void AddTimer(ITimerBase timer)
 {
     if (m_lstRunningTimer.IndexOf(timer) >= 0)
     {
         GameLog.Log("已经存在的定时器");
         return;
     }
     m_lstRunningTimer.Add(timer);
 }