Exemple #1
0
        private async Task StartService(
            IBackgroundService service,
            List <IBackgroundService> startedServices,
            CancellationTokenSource cancellationTokenSource)
        {
            _logger.ServiceStarting(service);

            var stopwatch = Stopwatch.StartNew();

            try
            {
                await service.StartAsync(cancellationTokenSource.Token);

                startedServices.Add(service);
                _logger.ServiceStarted(service, stopwatch.Elapsed);
            }
            catch (Exception error)
            {
                _logger.ServiceStartFailed(service, stopwatch.Elapsed, error);
                cancellationTokenSource.Cancel(false);
                throw;
            }
        }