Пример #1
0
        private static async Task Main(string[] args)
        {
            var runOnce         = false;
            var runAsConsoleApp = false;

            Parser.Default
            .ParseArguments <Options>(args)
            .WithParsed(o =>
            {
                runOnce         = o.RunOnce;
                runAsConsoleApp = o.RunAsConsoleApp;
            });

            if (runOnce)
            {
                using (var taskRunner = new TaskRunner())
                {
                    await taskRunner.RunTasksAsync();
                }
            }
            else
            {
                using (var service = new Service())
                {
                    if (Debugger.IsAttached || runAsConsoleApp)
                    {
                        service.Start(Duration.FromSeconds(10));
                        Thread.Sleep(-1);
                    }
                    else
                    {
                        ServiceBase.Run(service);
                    }
                }
            }
        }