首页 > 代码库 > C# 计划任务 铭轩同学原创

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();        }

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