/// <summary>
/// 表示一个自动化任务
/// </summary>
public abstract class AutomationTaskBase
{
private Timer _TaskTimer = null;
/// <summary>
/// 创建一个自动化任务的类的实例
/// </summary>
/// <param name="interval">任务每次执行的时间间隔(毫秒)</param>
public AutomationTaskBase(double interval)
{
_TaskTimer = new Timer(interval);
_TaskTimer.Elapsed += new ElapsedEventHandler(MsTimedEvent);
this.Busy = false;
}
/// <summary>
/// 开始执行任务
/// </summary>
public void Start()
{
if (!this.Enabled)
{
this.Busy = false;
_TaskTimer.Enabled = true;
}
}
/// <summary>
/// 停止当前任务的运行
/// </summary>
public void Stop()
{
_TaskTimer.Enabled = false;
}
/// <summary>
/// 编写任务的执行代码
/// </summary>
protected abstract void DoJob();
/// <summary>
/// 任务触发事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void MsTimedEvent(object source, ElapsedEventArgs e)
{
if (!this.Busy)
{
this.Busy = true;
DoJob();
this.Busy = false;
}
}
/// <summary>
/// 获取一个标志,表示当前任务是否已经启动
/// </summary>
public bool Enabled
{
get { return _TaskTimer.Enabled; }
}
/// <summary>
/// 获取一个标志,表示当前任务是否处于繁忙状态
/// </summary>
public bool Busy { get; private set; }
/// <summary>
/// 获取或设置当前任务每次执行的时间间隔(毫秒)
/// </summary>
public double Interval
{
get { return _TaskTimer.Interval; }
set { _TaskTimer.Interval = value; }
}
}
/// 表示一个自动化任务
/// </summary>
public abstract class AutomationTaskBase
{
private Timer _TaskTimer = null;
/// <summary>
/// 创建一个自动化任务的类的实例
/// </summary>
/// <param name="interval">任务每次执行的时间间隔(毫秒)</param>
public AutomationTaskBase(double interval)
{
_TaskTimer = new Timer(interval);
_TaskTimer.Elapsed += new ElapsedEventHandler(MsTimedEvent);
this.Busy = false;
}
/// <summary>
/// 开始执行任务
/// </summary>
public void Start()
{
if (!this.Enabled)
{
this.Busy = false;
_TaskTimer.Enabled = true;
}
}
/// <summary>
/// 停止当前任务的运行
/// </summary>
public void Stop()
{
_TaskTimer.Enabled = false;
}
/// <summary>
/// 编写任务的执行代码
/// </summary>
protected abstract void DoJob();
/// <summary>
/// 任务触发事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void MsTimedEvent(object source, ElapsedEventArgs e)
{
if (!this.Busy)
{
this.Busy = true;
DoJob();
this.Busy = false;
}
}
/// <summary>
/// 获取一个标志,表示当前任务是否已经启动
/// </summary>
public bool Enabled
{
get { return _TaskTimer.Enabled; }
}
/// <summary>
/// 获取一个标志,表示当前任务是否处于繁忙状态
/// </summary>
public bool Busy { get; private set; }
/// <summary>
/// 获取或设置当前任务每次执行的时间间隔(毫秒)
/// </summary>
public double Interval
{
get { return _TaskTimer.Interval; }
set { _TaskTimer.Interval = value; }
}
}