• C# 计划任务


       计划任务 :  个人理解, 就是后台控制程序要求在一定的时间执行相应的任务.

       直接上代码:

           之前,因为工作需要. 要求每天在凌晨2:00,执行要做的数据

      1.1  声明一个接口 Ijob

              方法: 执行

        public interface IJob
        {
            //执行方法
            void Execute();
        }
    

      1.2 声明一个调度程序配置类

             属性: 任务列表 (要实行的任务) ,  时间间隔 (多久执行一次);

        /// <summary>
        /// 调度程序配置
        /// </summary>
        public class SchedulerConfiguration
        {
            private int sleepInterval;
            private List<IJob> jobs = new List<IJob>();
            public SchedulerConfiguration(int newsleepInterval)
            {
                this.SleepInterval = newsleepInterval;
            }
    
            /// <summary>
            /// 任务列表
            /// </summary>
            public List<IJob> Jobs
            {
                get { return jobs; }
    
            }
            /// <summary>
            /// 时间间隔
            /// </summary>
            public int SleepInterval
            {
                get { return sleepInterval; }
                set { sleepInterval = value; }
            }

       1.3  声明调度程序类

             方法:  开启

             属性:  调度程序配置对象

        /// <summary>
        /// 调度程序
        /// </summary>
        public class Scheduler
        {
            private SchedulerConfiguration configuration = null;
            public Scheduler(SchedulerConfiguration SchedulerConn)
            {
                Sconn = SchedulerConn;
            }
    
            /// <summary>
            /// 开始执行的方法
            /// </summary>
            public void Start()
            {
                while (true)
                {
                    foreach (IJob job in configuration.Jobs)
                    {
                        ThreadStart _threadDelegate = new ThreadStart(job.Execute);
                        Thread _thread = new Thread(_threadDelegate);
                        _thread.Start();
                        Thread.Sleep(configuration.SleepInterval);
                        
                    }
                }
            }
    
            /// <summary>
            /// 调度程序配置信息
            /// </summary>
            public SchedulerConfiguration Sconn
            {
                get { return configuration; }
                set { configuration = value; }
            }

      1.4   实现 : Ijob接口

     class person : IJob
        {
    
            void IJob.Execute()
            {
                ThreadTest();
            }
            public void ThreadTest(){
                  //......
            }
        }        

     1.5  在程序入口(主线程)  运行

           public static System.Threading.Thread schedulerThread = null;
            static void Main(string[] args)
            {
                //调度程序配置(每小时执行一次)
                SchedulerConfiguration config = new SchedulerConfiguration(1000 * 60 * 60);
                //给配置添加工作
                config.Jobs.Add(new person());
                //调度程序
                Scheduler scheduler = new Scheduler(config);
                //执行线程
                schedulerThread = new System.Threading.Thread(new ThreadStart(scheduler.Start));
                schedulerThread.Start();
            }

     这样, 一个简单的计划任务,就实现了.

  • 相关阅读:
    Oracle 11g 在本机上安装PLSQL DEveloper
    Oracle 11g 启动与关闭服务的脚本
    Oracle 11g 安装过程图解
    linux下vi命令大全
    accuracy、precision、recall、true positives, true negatives, false positives 和 false negatives
    // 40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, // 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
    阿里巴巴第二道(研发类) 笔试题1,原题大致描述有一大批数据,百万级别的。数据项内容是:用户ID、科
    621. Task Scheduler
    625. Minimum Factorization
    623. Add One Row to Tree
  • 原文地址:https://www.cnblogs.com/mingxuantongxue/p/3822460.html
Copyright © 2020-2023  润新知