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; }