我正在尝试创建一个 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(使用前将#替换为@)