static void Main(string[] args) { //Console.CancelKeyPress += Console_CancelKeyPress; //_handler += new EventHandler(Handler); SetConsoleCtrlHandler(ShutdownHandler, true); //AppDomain.CurrentDomain.DomainUnload += CurrentDomain_DomainUnload; using (ts = new TimerServer()) { var worker = ts.StartWorkersAsync(); try { //while (true) Task.Delay(100).Wait(); // infinity loop, 在 windows container 的 daemon mode 下, ReadLine() 會讀取 STDIN 失敗 w.WaitOne(); } finally { //ts.StopWorkers(); _logger.Info("stop workers..."); worker.Wait(); _logger.Info("worker stopped."); } } }
private void updateTimerStatus() { TimerServer ins = TimerServer.ins; btnStartNow.Visibility = ins.isStart() && ins.isPause ? Visibility.Visible : Visibility.Collapsed; btnPause.Visibility = ins.isStart() && !ins.isPause ? Visibility.Visible : Visibility.Collapsed; btnStop.Visibility = ins.isStart() || ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed; btnSetting.Visibility = !ins.isStart() && !ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed; imgIcon.Visibility = !ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed; imgIconRotate.Visibility = ins.isAlarm() ? Visibility.Visible : Visibility.Collapsed; }