美烦资源网

专注技术文章分享,涵盖编程教程、IT 资源与前沿资讯

在应用程序中使用IHostApplicationLifetime

我们在前面提到了IHostApplicationLifetime接口用来管理应用程序的生命周期,在ASP.NET Core 应用程序中,我们经常需要管理应用的生命周期,比如在启动时初始化资源,在关闭时释放资源,或者在停止前执行一些清理工作。
我们在前面文章中提到了IHostApplicationLifetime生命周期中最重要的三个事件:
  • ApplicationStarted:应用程序完全启动后触发。
  • ApplicationStopping应用程序即将停止时触发。

  • ApplicationStopped应用程序完全停止后触发。

我们创建一个简单的ASP.NET Core 应用,使用如下代码:

var builder = WebApplication.CreateBuilder(args);var app = builder.Build();
var lifetime = app.Services.GetService<IHostApplicationLifetime>();lifetime.ApplicationStarted.Register(() => Console.WriteLine("===== Server is starting"));lifetime.ApplicationStopping.Register(() =>Console.WriteLine("===== Server is stopping"));lifetime.ApplicationStopped.Register(() => Console.WriteLine("===== Server has stopped"));
app.Run(async context =>{ await context.Response.WriteAsync("Hello world");});
app.Run();

我们运行应用程序:

我们可以看到ApplicationStarted事件被触发。我们使用Ctrl+C关闭应用程序。

可以看到ApplicationStopping和ApplicationStopped事件被触发。

源代码地址:

https://github.com/bingbing-gui/AspNetCore-Skill/tree/master/src/aspnetcore-knowledge-point/application-lifetime


控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言