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) { } } } }