Я создал приложение dotnet core 2.1 под управлением MVC, а также добавил BackgroundService (services.AddHostedService ()).
Работает нормально, однако довольно часто, когда я нажимаю CTRL + C, приложение закрывается, но фоновая служба все еще работает и выводит отладочную информацию на консоль.
Я пытался записать состояние токена отмены, но фоновая служба довольно часто не отменяется:
protected async override Task ExecuteAsync(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
Console.WriteLine(cancellationToken.IsCancellationRequested);
await doWork(cancellationToken)
}
}
вывод консоли остается ложным ...
Кто-нибудь знает, почему токен отмены не передается фоновой задаче?
чтобы запустить мое приложение, я выполняю dotnet run
из командной строки