我创建了一个运行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