Beispiel #1
0
            private static void ProcessChangeQueue()
            {
                while (mChangeQueue.Count > 0)
                {
                    TimerChangeEntry tce   = (TimerChangeEntry)mChangeQueue.Dequeue();
                    Timer            timer = tce.mTimer;
                    int newIndex           = tce.mNewIndex;

                    if (timer.mList != null)
                    {
                        timer.mList.Remove(timer);
                    }

                    if (tce.mIsAdd)
                    {
                        timer.mNext  = DateTime.Now + timer.mDelay;
                        timer.mIndex = 0;
                    }

                    if (newIndex >= 0)
                    {
                        timer.mList = mTimers[newIndex];
                        timer.mList.Add(timer);
                    }
                    else
                    {
                        timer.mList = null;
                    }

                    tce.Free();
                }
            }
Beispiel #2
0
        private void ProcessChangeQueue(DateTime now)
        {
            lock ( m_ChangeQueue )
            {
                while (m_ChangeQueue.Count > 0)
                {
                    TimerChangeEntry tce   = m_ChangeQueue.Dequeue();
                    Timer            timer = tce.Timer;
                    int newIndex           = tce.NewIndex;

                    if (timer.m_List != null)
                    {
                        timer.m_List.Remove(timer);
                    }

                    if (tce.IsAdd)
                    {
                        timer.m_Next  = now + timer.Delay;
                        timer.m_Index = 0;
                    }

                    if (newIndex >= 0)
                    {
                        timer.m_List = m_Timers[newIndex];
                        timer.m_List.Add(timer);
                    }
                    else
                    {
                        timer.m_List = null;
                    }

                    tce.Free();
                }
            }
        }