tnblog
首页
视频
资源
登录

BackgroundService服务定时任务

4063人阅读 2021/11/19 15:18 总访问:342016 评论:0 收藏:0 手机
分类: ASP.NET

public abstract class InterfaceMethed : BackgroundService

    {

        //创建一个取消标记源

        private readonly CancellationTokenSource source = new CancellationTokenSource();

        //入参委托

        private Action<object> action = null;

        //方法初始化

        protected void Init()

        {

            action = async a =>

              {

                  while (true)

                  {

                      DoWork(a);

                      await Task.Delay(TimeSpan.FromSeconds(10));

                  }

              };

        }

        //执行方法

        protected override Task ExecuteAsync(CancellationToken stoppingToken)

        {

            Init();

            _ = Task.Factory.StartNew(action, source.Token);

            return Task.CompletedTask;

        }

        //重写关闭方法

        public override Task StopAsync(CancellationToken cancellationToken)

        {

            source.Cancel();

            return base.StopAsync(cancellationToken);

        }

        protected abstract void DoWork(object state);
继承InterfaceMethed写入逻辑

 public class Getfriend : InterfaceMethed

    {

        protected override void DoWork(object state)

        {

            Console.WriteLine("Hellow word");

        }

    }

在中间件调用 services.AddHostedService<Getfriend>();

评价
当你知道迷惑时,并不可怜,当你不知道迷惑时,才是最可怜的。
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术