.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
浙公网安备 33010602011771号