如何以编程方式停止/退出/终止 dotnet core HostBuilder 控制台应用程序?

2024-05-01

我正在尝试创建一个 dotnet 核心控制台应用程序。该应用程序是一个简单的实用程序应用程序,应该启动、执行其操作并退出。 使用 Visual Studio 生成的标准控制台应用程序模板可以轻松实现。 但现在我们有了 HostBuilder,它似乎更有吸引力,因为它带来了与 WebHostBuilder、DI、Loggin 等的统一体验。

但看起来这种方法只为长时间运行的后台服务而设计。它将启动并永远等待,直到发生外部终止事件(如 Ctrl-C)。

有没有办法从内部结束这种类型的应用程序?


您可以使用IHostApplicationLifetime要停止应用程序的运行,您可以从构造函数访问它并调用StopApplication() method.

IHostApplicationLifetime _lifeTime;
public MyClass(IHostApplicationLifetime lifeTime)
{
    _lifeTime = lifeTime;
}

然后停止应用程序()

public void Exit()
{
    _lifeTime.StopApplication();
}

Edited to use IHostApplicationLifetime as IApplicationLifetime已弃用。

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

如何以编程方式停止/退出/终止 dotnet core HostBuilder 控制台应用程序? 的相关文章

随机推荐