当前位置: 首页 > news >正文

河南网站制作工作室邯郸做移动网站多少钱

河南网站制作工作室,邯郸做移动网站多少钱,贵阳企业网站,做国外的网站写在前面停了近一个月的技术博客#xff0c;随着正式脱离996的魔窟#xff0c;接下来也正式恢复了。本文从源码角度进一步讨论.NET Core 3.0 中关于Host扩展的一些技术点#xff0c;主要内容是关于创建Long Run Program的创建与守护。关于Host#xff0c;我们最容易想到的就… 写在前面停了近一个月的技术博客随着正式脱离996的魔窟接下来也正式恢复了。本文从源码角度进一步讨论.NET Core 3.0 中关于Host扩展的一些技术点主要内容是关于创建Long Run Program的创建与守护。关于Host我们最容易想到的就是程序的启动与停止而其中隐藏着非常关键的功能就是Host的初始化我们所需要的所有资源都必须而且应该在程序启动过程中初始化完成当然本文的主要内容并不是Host初始化。当然为了更好的守护与管理已经启动的Host.NET Core 3.0将程序的生命周期事件的订阅开放给开发者当然也包括自定义的Host Service对象。注本文代码基于.NET Core 3.0 Preview9.NET Core 3.0中创建Long Run ProgramIHost与IHostBuilder当我们创建Long Run Program时会首先关注程序的启动与停止.NET Core 3.0为此提供了一个接口IHost该接口位于Microsoft.Extensions.Hosting类库中其源码如下该接口含有一个只读属性IServiceProvider Services { get; }通过该属性我们可以拿到所有Host初始化时所注入的对象信息。IHostBuilder接口所承担的核心功能就是程序的初始化通过IHost Build()来完成当然只需要运行一次即可。其初始化内容一般包括以下几个功能另外需要说明的是以上功能的初始化是通过IHostBuilder提供的接口获取用户输入的信息后通过调用Build()方法来完成初始化。以下为IHostBuilder的部分源代码IHostService文章开头有说过自定义Host Service对象那么我们如何自定义呢其实很简单只需要实现IHostService并在ConfigureServices中调用services.AddHostedServiceMyServiceA()即可以下是IHostService的源码根据源码我们可以知道该接口只有两个方法即代码程序开始与停止的方法。具体的实现可以参考如下IHostService是我们自定义Host管理对象的入口所有需要压入到Host托管的对象都必须要实现此接口。Host生命周期的管理该接口提供了一种我们可以在程序运行期间进行管理的功能如程序的启动与停止事件的订阅关于Host生命周期的管理主要由IHostApplicationLifetime和IHostLifetime这两个接口来完成。以下是IHostApplicationLifetime的源码IHostLifetime源码如下public interface IHostLifetime { /// summary /// Called at the start of see crefIHost.StartAsync(CancellationToken)/ which will wait until its complete before /// continuing. This can be used to delay startup until signaled by an external event. /// /summary /// param namecancellationTokenUsed to indicate when stop should no longer be graceful./param /// returnsA see crefTask/./returns Task WaitForStartAsync(CancellationToken cancellationToken); /// summary /// Called from see crefIHost.StopAsync(CancellationToken)/ to indicate that the host is stopping and its time to shut down. /// /summary /// param namecancellationTokenUsed to indicate when stop should no longer be graceful./param /// returnsA see crefTask/./returns Task StopAsync(CancellationToken cancellationToken); } 具体的使用可以参考如下代码public class MyLifetime : IHostLifetime, IDisposable { ......... private IHostApplicationLifetime ApplicationLifetime { get; } public ConsoleLifetime(IHostApplicationLifetime applicationLifetime) { ApplicationLifetime applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime)); } public Task WaitForStartAsync(CancellationToken cancellationToken) { _applicationStartedRegistration ApplicationLifetime.ApplicationStarted.Register(state { ((ConsoleLifetime)state).OnApplicationStarted(); }, this); _applicationStoppingRegistration ApplicationLifetime.ApplicationStopping.Register(state { ((ConsoleLifetime)state).OnApplicationStopping(); }, this); ....... return Task.CompletedTask; } private void OnApplicationStarted() { Logger.LogInformation(Application started. Press CtrlC to shut down.); Logger.LogInformation(Hosting environment: {envName}, Environment.EnvironmentName); Logger.LogInformation(Content root path: {contentRoot}, Environment.ContentRootPath); } private void OnApplicationStopping() { Logger.LogInformation(Application is shutting down...); } ........ } 总结至此我们知道了创建Long Run Program所需要关注的几个点分别是继承IHostService、订阅程序的生命周期时间以及Host的初始化过程。相对来说这段内容还是比较简单的但是开发过程中依然会遇到很多的问题比如任务的定时机制、MQ的接入、以及程序的性能优化等等这些都需要我们在实践中进一步总结完善。
http://www.zqtcl.cn/news/951559/

相关文章:

  • 北京 网站建设 知乎上海公司买新能源车
  • 成都微网站wordpress 购买
  • 网站开发一般要用到哪些软件软件开发工程师机构
  • dj网站开发建设网站备案 换空间
  • 网站建设哪家最好网站开发怎么报价
  • app 微商城网站建设网站建设流程百科
  • 网站短期培训学校小说网站怎么建设的
  • 最简单的免费网站制作模板电子商务 网站系统
  • 网站域名备案授权书网站建设长春
  • 网站维护主要从哪几个方面做seo营销的概念
  • 北京网站建设营销网站策划案4500
  • 网站建设售后培训wordpress 过滤html
  • 湖北森泰建设集团有限公司网站国外产品设计网站推荐
  • 网站建设与代运营产品介绍排版网页设计教程
  • 音乐网站排名搜索引擎网络推广方法
  • asp.net 企业网站昆明高端seo怎么做
  • 图书馆网站建设需求方案企业网站背景图片
  • 网站app的作用做家教网站资质
  • 资源网站搭建北京app网站建设
  • 天津做宠物饲料的网站wordpress添加注册页面模板
  • 网站建设公司石家庄php网站开发报价
  • 国外免费网站服务器链接cpa自己做网站
  • 手机网站的优缺点2024中国企业500强
  • 黄河道网站建设网站设计标语
  • 企业网站建设范文wordpress 5.1
  • 网站 河北 备案 慢设计一个营销方案
  • 网站建设培训合肥品牌设计案例
  • 建网站注册免费云服务器
  • 可以做网站的公司有哪些聊天软件开发厂家有哪些
  • 正规网站建设公司一般要多少钱婚纱网站有哪些