dotnet core IWebHost with BackgroundService 在 CTRL+C 后保持运行

2024-04-08

我创建了一个运行 MVC 的 dotnet core 2.1 应用程序,还添加了一个 BackgroundService (services.AddHostedService())。

它工作正常,但是经常当我按 CTRL+C 时,应用程序退出,但后台服务仍然运行并将调试输出到控制台。

我尝试记录取消令牌的状态,但后台服务经常不会被取消:

protected async override Task ExecuteAsync(CancellationToken cancellationToken)
{
    while (!cancellationToken.IsCancellationRequested)
    {
        Console.WriteLine(cancellationToken.IsCancellationRequested);
        await doWork(cancellationToken)
    }
}

控制台输出仍然为假...

有人知道为什么取消令牌不传递给后台任务吗?

要运行我的应用程序,我正在执行dotnet run从命令行


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dotnet core IWebHost with BackgroundService 在 CTRL+C 后保持运行 的相关文章

随机推荐