/ PeriodicInfo.cs
PeriodicInfo.cs
1 namespace _5uhr; 2 3 public class PeriodicInfo(InfoService service) : IHostedService, IDisposable, IAsyncDisposable 4 { 5 // should run service.UpdateInfoAsync every 5 minutes: 6 private Timer? _timer; 7 public Task StartAsync(CancellationToken cancellationToken) 8 { 9 _timer = new Timer(_ => service.UpdateInfoAsync(), null, TimeSpan.Zero, TimeSpan.FromMinutes(5)); 10 return Task.CompletedTask; 11 } 12 public Task StopAsync(CancellationToken cancellationToken) 13 { 14 _timer?.Change(Timeout.Infinite, 0); 15 return Task.CompletedTask; 16 } 17 18 public void Dispose() 19 { 20 _timer?.Dispose(); 21 } 22 23 public async ValueTask DisposeAsync() 24 { 25 if (_timer != null) await _timer.DisposeAsync(); 26 } 27 }