Exemple #1
0
        private bool EnsureAppDomainTimerFiresBy(uint requestedDuration)
        {
            uint num = Math.Min(requestedDuration, 268435455U);

            if (this.m_isAppDomainTimerScheduled)
            {
                uint num2 = (uint)(TimerQueue.TickCount - this.m_currentAppDomainTimerStartTicks);
                if (num2 >= this.m_currentAppDomainTimerDuration)
                {
                    return(true);
                }
                uint num3 = this.m_currentAppDomainTimerDuration - num2;
                if (num >= num3)
                {
                    return(true);
                }
            }
            if (this.m_pauseTicks != 0)
            {
                return(true);
            }
            if (this.m_appDomainTimer == null || this.m_appDomainTimer.IsInvalid)
            {
                this.m_appDomainTimer = TimerQueue.CreateAppDomainTimer(num, 0);
                if (!this.m_appDomainTimer.IsInvalid)
                {
                    this.m_isAppDomainTimerScheduled       = true;
                    this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount;
                    this.m_currentAppDomainTimerDuration   = num;
                    return(true);
                }
                return(false);
            }
            else
            {
                if (TimerQueue.ChangeAppDomainTimer(this.m_appDomainTimer, num))
                {
                    this.m_isAppDomainTimerScheduled       = true;
                    this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount;
                    this.m_currentAppDomainTimerDuration   = num;
                    return(true);
                }
                return(false);
            }
        }
Exemple #2
0
        private bool EnsureAppDomainTimerFiresBy(uint requestedDuration)
        {
            uint dueTime = Math.Min(requestedDuration, 268435455U);

            if (this.m_isAppDomainTimerScheduled)
            {
                uint num1 = (uint)(TimerQueue.TickCount - this.m_currentAppDomainTimerStartTicks);
                if (num1 >= this.m_currentAppDomainTimerDuration)
                {
                    return(true);
                }
                uint num2 = this.m_currentAppDomainTimerDuration - num1;
                if (dueTime >= num2)
                {
                    return(true);
                }
            }
            if (this.m_pauseTicks != 0)
            {
                return(true);
            }
            if (this.m_appDomainTimer == null || this.m_appDomainTimer.IsInvalid)
            {
                this.m_appDomainTimer = TimerQueue.CreateAppDomainTimer(dueTime);
                if (this.m_appDomainTimer.IsInvalid)
                {
                    return(false);
                }
                this.m_isAppDomainTimerScheduled       = true;
                this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount;
                this.m_currentAppDomainTimerDuration   = dueTime;
                return(true);
            }
            if (!TimerQueue.ChangeAppDomainTimer(this.m_appDomainTimer, dueTime))
            {
                return(false);
            }
            this.m_isAppDomainTimerScheduled       = true;
            this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount;
            this.m_currentAppDomainTimerDuration   = dueTime;
            return(true);
        }