计划任务 : 个人理解, 就是后台控制程序要求在一定的时间执行相应的任务.
直接上代码:
之前,因为工作需要. 要求每天在凌晨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(); }
这样, 一个简单的计划任务,就实现了.
原文:http://www.cnblogs.com/mingxuantongxue/p/3822460.html