.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
posted @ 2021-10-16 18:35  顺其自然,道法自然  阅读(188)  评论(0编辑  收藏  举报