gpt4 book ai didi

c# - 关闭 .Netcore IHostedService 作为控制台应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 22:35:08 25 4
gpt4 key购买 nike

我在 .netcore 2.2 中构建了通用主机 (IHostedService)。我将 HostBuilder 作为 RunConsoleAsync() 运行。RunConsoleAync() 将等待 Ctrl + C 关闭应用程序。我想在 StartAsync() 进程完成后立即关闭控制台应用程序,而不是用户必须按 ctrl + c。

我尝试使用新的 CancellationToken(true) 调用 StopAsync(),但它对我没有帮助。

我将其开发为 IHostedService,因为该应用程序将部署在多个平台上。

最佳答案

我假设您已经实现了 IHostedService。您需要做的就是注入(inject) IHostApplicationLifetime 并使用它来停止应用程序,如下所示:

    public class Service : IHostedService
{
private readonly IHostApplicationLifetime _applicationLifetime;
public Service(IHostApplicationLifetime applicationLifetime)
{
_applicationLifetime = applicationLifetime;
}

public Task StartAsync(CancellationToken cancellationToken)
{
...

_applicationLifetime.StopApplication();
return Task.CompletedTask;
}

...
}

关于c# - 关闭 .Netcore IHostedService 作为控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55589900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com