private void SleepThread(int sleepTime, SleepUnit sleepUnit)
        {
            if (internalThread.IsAlive && !ThreadAction.IsAlive)
            {
                var timeSpan = new TimeSpan(0, 0, 0, 4);

                switch (sleepUnit)
                {
                case SleepUnit.Daily:
                    timeSpan = new TimeSpan(sleepTime, 0, 0, 0);
                    break;

                case SleepUnit.Hourly:
                    timeSpan = new TimeSpan(0, sleepTime, 0, 0);
                    break;

                case SleepUnit.Minutes:
                    timeSpan = new TimeSpan(0, 0, sleepTime, 0);
                    break;

                case SleepUnit.Seconds:
                    timeSpan = new TimeSpan(0, 0, 0, sleepTime);
                    break;
                }

                Thread.Sleep(timeSpan); // relieve CPU, default 0 milliseconds
            }
        }
Example #2
0
        public void StartThread(int sleepTime = 1, SleepUnit sleepUnit = SleepUnit.Seconds)
        {
            if (IsRunning)
            {
                return;
            }

            ThreadRunner.StartThreadRunner(sleepTime, sleepUnit);
        }
        internal void StartThreadRunner(int sleepTime, SleepUnit sleepUnit)
        {
            _sleepTime = sleepTime;
            _sleepUnit = sleepUnit;

            _isAlive = true;

            internalThread = new Thread(InternalThreadLoop);

            internalThread.Start();
        }