Exemplo n.º 1
0
    public static void Tick()
    {
        if (TimerHeap.isPause)
        {
            return;
        }
        if (!TimerHeap.m_stopWatch.get_IsRunning())
        {
            TimerHeap.m_stopWatch.Start();
        }
        TimerHeap.m_unTick              = (uint)(Time.get_time() * 1000f);
        TimerHeap.m_checkTimeTmp       += TimerHeap.m_invokeReaptingTime;
        TimerHeap.m_timeSystemTimerTmp += TimerHeap.m_invokeReaptingTime;
        if (!TimerHeap.m_cheat && TimerHeap.m_checkTimeTmp > TimerHeap.m_checkPerTime)
        {
            TimerHeap.m_checkTimeTmp = 0f;
            TimerHeap.CheckCheat();
        }
        bool flag = Debug.get_isDebugBuild() || Application.get_isEditor();

        while (TimerHeap.m_queue.Count != 0)
        {
            object       queueLock = TimerHeap.m_queueLock;
            AbsTimerData absTimerData;
            lock (queueLock)
            {
                absTimerData = TimerHeap.m_queue.Peek();
            }
            if ((ulong)TimerHeap.m_unTick < absTimerData.UnNextTick)
            {
                break;
            }
            object queueLock2 = TimerHeap.m_queueLock;
            lock (queueLock2)
            {
                TimerHeap.m_queue.Dequeue();
            }
            if (absTimerData.NInterval > 0)
            {
                absTimerData.UnNextTick += (ulong)((long)absTimerData.NInterval);
                object queueLock3 = TimerHeap.m_queueLock;
                lock (queueLock3)
                {
                    TimerHeap.m_queue.Enqueue(absTimerData.NTimerId, absTimerData, absTimerData.UnNextTick);
                }
                if (flag)
                {
                    string arg_174_0 = (!string.IsNullOrEmpty(absTimerData.StackTrack)) ? absTimerData.StackTrack : absTimerData.Action.get_Method().get_Name();
                }
                absTimerData.DoAction();
                if (flag)
                {
                }
            }
            else
            {
                if (flag)
                {
                    string arg_1B8_0 = (!string.IsNullOrEmpty(absTimerData.StackTrack)) ? absTimerData.StackTrack : absTimerData.Action.get_Method().get_Name();
                }
                absTimerData.DoAction();
                if (flag)
                {
                }
            }
        }
    }