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 } }
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(); }