public Task StartAsync(CancellationToken cancellationToken)
        {
            // raise after all event registered
            appLifetime.ApplicationStarted.Register(async state =>
            {
                var self = (ConsoleAppEngineService)state;
                try
                {
                    var engine = new ConsoleAppEngine(self.logger, scope.ServiceProvider, scope.ServiceProvider.GetRequiredService <ConsoleAppOptions>(), self.cancellationTokenSource.Token);
                    if (self.methodInfo != null)
                    {
                        self.runningTask = engine.RunAsync(self.type, self.methodInfo, self.args);
                    }
                    else
                    {
                        self.runningTask = engine.RunAsync(self.type, self.args);
                    }

                    await self.runningTask;
                    self.runningTask = null;
                }
                catch
                {
                    // don't do anything.
                }
                finally
                {
                    self.appLifetime.StopApplication();
                }
            }, this);

            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await interceptor.OnEngineBeginAsync(scope.ServiceProvider, logger);

            // raise after all event registered
            appLifetime.ApplicationStarted.Register(async state =>
            {
                var self = (ConsoleAppEngineService)state;
                try
                {
                    var engine = new ConsoleAppEngine(self.logger, scope.ServiceProvider, self.interceptor, self.cancellationTokenSource.Token);
                    if (self.methodInfo != null)
                    {
                        self.runningTask = engine.RunAsync(self.type, self.methodInfo, self.args);
                    }
                    else
                    {
                        self.runningTask = engine.RunAsync(self.type, self.args);
                    }

                    await self.runningTask;
                    self.runningTask = null;
                }
                catch { } // don't do anything.
                finally
                {
                    self.appLifetime.StopApplication();
                }
            }, this);
        }