![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
//
程序的定期任务,每个任务都实现ISchedulerWork
public interface ISchedulerWork
{
void Execute();
}
// 考核模块——考核个人通知邮件任务
public class EmaiSendingJob : ISchedulerWork
{
public void Execute()
{
;
}
}
// 建立一个配置对象,用来存储要定期执行的任务和执行的时间间隔。
public class SchedulerConfiguration
{
// 时间间隔 每天执行一次
private int sleepInterval;
// 任务列表
private ArrayList jobs = new ArrayList();
public int SleepInterval { get { return sleepInterval; } }
public ArrayList Jobs { get { return jobs; } }
// 调度配置类的构造函数
public SchedulerConfiguration( int newSleepInterval)
{
sleepInterval = newSleepInterval;
}
}
// 调度类,定时执行配置对象的任务
public class Scheduler
{
private SchedulerConfiguration configuration = null ;
public Scheduler(SchedulerConfiguration config)
{
configuration = config;
}
public void Start()
{
while ( true )
{
// 执行每一个任务
foreach (ISchedulerWork job in configuration.Jobs)
{
Thread myThread = new Thread( new ThreadStart(job.Execute));
myThread.Start();
Thread.Sleep(configuration.SleepInterval);
}
}
}
}
public interface ISchedulerWork
{
void Execute();
}
// 考核模块——考核个人通知邮件任务
public class EmaiSendingJob : ISchedulerWork
{
public void Execute()
{
;
}
}
// 建立一个配置对象,用来存储要定期执行的任务和执行的时间间隔。
public class SchedulerConfiguration
{
// 时间间隔 每天执行一次
private int sleepInterval;
// 任务列表
private ArrayList jobs = new ArrayList();
public int SleepInterval { get { return sleepInterval; } }
public ArrayList Jobs { get { return jobs; } }
// 调度配置类的构造函数
public SchedulerConfiguration( int newSleepInterval)
{
sleepInterval = newSleepInterval;
}
}
// 调度类,定时执行配置对象的任务
public class Scheduler
{
private SchedulerConfiguration configuration = null ;
public Scheduler(SchedulerConfiguration config)
{
configuration = config;
}
public void Start()
{
while ( true )
{
// 执行每一个任务
foreach (ISchedulerWork job in configuration.Jobs)
{
Thread myThread = new Thread( new ThreadStart(job.Execute));
myThread.Start();
Thread.Sleep(configuration.SleepInterval);
}
}
}
}
在程序全局事件中:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
protected
void
Application_Start(
object
sender, EventArgs e)
{
SchedulerConfiguration config =
new SchedulerConfiguration( 1000 * 60 * 60 * 23 );
config.Jobs.Add( new .EmailSendingJob());
Scheduler scheduler = new Scheduler(config);
schedulerThread = new System.Threading.Thread( new System.Threading.ThreadStart(scheduler.Start));
schedulerThread.Start();
}
protected void Application_End( object sender, EventArgs e)
{
try
{
// 程序退出时进行销毁
if (schedulerThread != null )
{
schedulerThread.Abort();
}
}
catch
{
// operation
;
}
}
{
SchedulerConfiguration config =
new SchedulerConfiguration( 1000 * 60 * 60 * 23 );
config.Jobs.Add( new .EmailSendingJob());
Scheduler scheduler = new Scheduler(config);
schedulerThread = new System.Threading.Thread( new System.Threading.ThreadStart(scheduler.Start));
schedulerThread.Start();
}
protected void Application_End( object sender, EventArgs e)
{
try
{
// 程序退出时进行销毁
if (schedulerThread != null )
{
schedulerThread.Abort();
}
}
catch
{
// operation
;
}
}