Я использую Net Core 3.X BackgroundService, и после публикации моего кода я установил исполняемый файл, созданный как Windows Service.
В моем ExecuteAsyn c метод I есть такой код:
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
//do something
if(someConditionIsTrue)
{
await this.StopAsync(new CancellationToken());
}
}
}
Этот ручной вызов StopAsyn c останавливает выполнение и выходит из while l oop, но когда я go перехожу в services.ms c, я вижу что моя Windows служба все еще находится в рабочем состоянии, хотя ничего не выполняет.
Как я могу остановить службу автоматически и не вызывать "cmd \ c s c stop ..."?
Спасибо