我在 .netcore 2.2 中构建了通用主机 (IHostedService)。我将 HostBuilder 作为 RunConsoleAsync() 运行。RunConsoleAync() 将等待 Ctrl + C 关闭应用程序。我想在 StartAsync() 进程完成后立即关闭控制台应用程序,而不是用户必须按 ctrl + c。
我尝试使用 new CancellationToken(true) 调用 StopAsync(),但它对我没有帮助。
我将此开发为 IHostedService,因为此应用程序将部署在多个平台上。
Thu*_*kwa 19
我假设您已经IHostedService实施了到位。您需要做的就是注入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;
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |