您的位置:首页 > 编程语言 > C#

C# 计划任务

2014-07-03 15:15 218 查看
计划任务 : 个人理解, 就是后台控制程序要求在一定的时间执行相应的任务.

直接上代码:

    之前,因为工作需要. 要求每天在凌晨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();
}


这样, 一个简单的计划任务,就实现了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: