Ядро dotnet IWebHost с BackgroundService продолжает работать после CTRL + C - PullRequest
0 голосов
/ 19 сентября 2018

Я создал приложение 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 из командной строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...