コード例 #1
0
ファイル: ServiceTools.cs プロジェクト: simika8/Shared
        public void RunInCmd(EventHandler <MessageHandler.MessageEventArgs> logger = null)
        {
            try
            {
                if (IsWin10)
                {
                    ConsoleManager.EnableVtMode();
                }

                ServiceMode = false;

                MessageHandler.Message += logger ?? CommandlineLogger;

                OnStart(Environment.GetCommandLineArgs());

                Console.Title = $@"{ServiceName} - Press Escape to Exit";

                while (!(Console.KeyAvailable && Console.ReadKey(true).Key.Equals(ConsoleKey.Escape)))
                {
                    Thread.Sleep(10);
                }

                OnStop();

                MessageHandler.Message -= logger ?? CommandlineLogger;

                if (IsWin10)
                {
                    ConsoleManager.DisableVtMode();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                Console.ReadKey();
            }
        }