.NET通用主机模型
.NET提供了一个简单的应用程序框架,这就是.NET的通用主机。
参考微软帮助:https://docs.microsoft.com/zh-cn/dotnet/core/extensions/generic-host
通用主机运行起来比较简单:
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) { Host.CreateDefaultBuilder(args).Build().Run(); } }
运行结果如下:
之所以称它为框架,因为它可以添加各种服务,比如:
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }); }
其中AddHostedService是一种特殊的服务,主机运行时会自动调用StartAsync函数。
这样通用主机模型就是这么一个框架,它管理了应用程序的生命周期,可以添加各种服务,其中AddHostedService函数添加IHostedService服务,会自动调用StartAsync函数,之所以是异步的,是因为可能有多个这样的服务,不能阻塞在某个服务上。
AddHostedService