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.");
                }
            }
        }
Example #2
0
        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;
        }