Ejemplo n.º 1
0
        public Task StopAsync(CancellationToken cancellationToken)
        {
            if (_stopped)
            {
                return(Task.CompletedTask);
            }
            _stopped = true;

            _logger?.Shutdown();

            if (!cancellationToken.CanBeCanceled)
            {
                cancellationToken = new CancellationTokenSource(_options.ShutdownTimeout).Token;
            }

            // Fire IApplicationLifetime.Stopping
            _applicationLifetime?.StopApplication();

            // Fire the IHostedService.Stop
            _hostedServiceExecutor?.Stop();

            // Fire IApplicationLifetime.Stopped
            _applicationLifetime?.NotifyStopped();

            return(Task.CompletedTask);
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            _logger?.Shutdown();

            // Fire IApplicationLifetime.Stopping
            _applicationLifetime?.StopApplication();

            // Fire the IHostedService.Stop
            _hostedServiceExecutor?.Stop();

            (_hostingServiceProvider as IDisposable)?.Dispose();
            (_applicationServices as IDisposable)?.Dispose();

            // Fire IApplicationLifetime.Stopped
            _applicationLifetime?.NotifyStopped();

            HostingEventSource.Log.HostStop();
        }