using Microsoft.Extensions.Hosting; namespace Seyounth.Auto.Hs.Runtime.Plc; public class PlcBackgroundService(IPlcService plc) : BackgroundService { public override async Task StartAsync(CancellationToken cancellationToken) { await plc.StartAsync(); await base.StartAsync(cancellationToken); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { await plc.QueryWarningInfo(); await Task.Delay(50, stoppingToken); } } public override Task StopAsync(CancellationToken cancellationToken) { plc.StopAsync(); return base.StopAsync(cancellationToken); } }