コード例 #1
0
        private async Task PeriodicTaskWrapper(IPeriodicService service, TimeSpan period, CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                try
                {
                    await Task.Delay(period, cancellationToken);

                    await service.PeriodicActionAsync(cancellationToken);
                }
                catch (OperationCanceledException)
                {
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                }
            }
        }
 public BackgroundServiceHostBuilder WithPeriodicBackgroundService(IPeriodicService service, TimeSpan period)
 {
     _services[service] = period;
     return(this);
 }
 public BackgroundServiceTask(IPeriodicService service, TimeSpan period)
 {
     _service = service;
     _period  = period;
 }