private void WorkerThread()
{
AppConsole.Log("Restarter Worker Thread Started", ConsoleColor.Green);
DateTime nextRestart = GetRestartTime(); //--- Fetch next restart
AppConsole.Log(String.Format("Selected next restart date: {0}", nextRestart.ToString("F")), ConsoleColor.Green);
_workerRunning = true;
while (_workerRunning) {
_waitHandle.WaitOne(1000);
TimeSpan timeLeft = nextRestart.Subtract(DateTime.Now);
SendMessage(String.Format("Time until next restart: {0} hours, {1} minutes, {2} seconds.",
timeLeft.Hours, timeLeft.Minutes, timeLeft.Seconds));
if (timeLeft.CompareTo(TimeSpan.Zero) < 0)
DoRestart();
}
基本的にこのスレッドから、サーバーが再起動してから 10 分以上経過している場合は 5 分ごとにメッセージを出力し、サーバーが起動してから 10 分未満の場合は 2.5 分ごとにメッセージを出力する必要があります。これを行うための最良の方法は何だろうと思っています。
乾杯