예제 #1
0
        //Ожидание следующей обработки
        protected override void Waiting()
        {
            var timeout = (int)NextPeriodStart.Subtract(DateTime.Now).TotalMilliseconds;

            if (timeout > 0)
            {
                Thread.Sleep(timeout);
            }
        }
예제 #2
0
        //Ожидание следующей обработки
        protected override void Waiting()
        {
            StartLog("Опредение диапазона источников").Run(GetSourcesTime);
            if (NextPeriodStart <= DateTime.Now)
            {
                _threadPeriodMode = "Выравнивание";
                return;
            }
            var d   = DateTime.Now;
            var dif = NextPeriodStart.Subtract(d).TotalSeconds;

            using (StartPeriod(ThreadPeriodBegin, ThreadPeriodEnd, _threadPeriodMode = "Синхронный"))
                using (StartProgress("Ожидание", "", "", NextPeriodStart))
                    while (d < NextPeriodStart)
                    {
                        if (CheckFinishing())
                        {
                            return;
                        }
                        Procent = 100.0 * DateTime.Now.Subtract(d).TotalSeconds / dif;
                        Thread.Sleep(1000);
                        d = DateTime.Now;
                    }
        }
예제 #3
0
 //Определение первого периода
 protected override bool FirstPeriod()
 {
     ThreadPeriodEnd = ThreadPeriodBegin.AddSeconds(PeriodSeconds);
     NextPeriodStart = ThreadPeriodEnd.AddSeconds(LateSeconds);
     return(NextPeriodStart.Subtract(ThreadFinishTime).TotalSeconds < 0.0001);
 }