.netCore windows服务

首先创建项目Worker Service

然后引用包Microsoft.Extensions.Hosting.WindowsServices

修改program项

 public static IHostBuilder CreateHostBuilder(string[] args)
        {
            var host = Host.CreateDefaultBuilder(args);

            //判断当前系统是否是windows
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                host.UseWindowsService();
            }

               host.ConfigureServices((hostContext, services) =>
                {
                    //后台服务
                    services.AddHostedService<Worker>();
                });

            return host;
        }

在worker的ExecuteAsync中进行逻辑的实现

public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;

        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }

        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            Timer timer = new Timer(x => {
                File.AppendAllText(@"D:\Quartz.txt","启动服务");
            },null,1,3*10);
        }
    }

1:表示开始服务之后多久使用计时器

3*10:表示每隔多少秒调用一次

然后将服务发布

   发布之后打开cmd 使用sc 对服务进行操作

  例子:sc create MyCoreService binPath= D:\study\大实训\项目二\park_wu\Myworker\bin\Release\net5.0\publish\Myworker.exe DisplayName= MyFtService

重要:

如果想在worker中使用依赖注入需要将所有的服务进行注册

posted @ 2022-05-10 19:03  电器小君子  阅读(235)  评论(0)    收藏  举报