public class TimerDemo
{
string _ThreadName;
public string ThreadName
{
get { return _ThreadName; }
private set { _ThreadName = value; }
}
int _TimeInterval;
public int TimeInterval
{
get { return _TimeInterval; }
set { _TimeInterval = value; }
}
bool _Enabled;
public bool Enabled
{
get { return _Enabled; }
set { _Enabled = value; }
}
public delegate void TickEventHandler();
public event TickEventHandler TickEvent;
/// <summary>
/// 建立一个计时器(构造函数)
/// </summary>
/// <param name="ThreadName">线程名</param>
/// <param name="TimeInterval">时间间隔</param>
public TimerDemo(string ThreadName, int TimeInterval = int.MaxValue)
{
this.ThreadName = ThreadName;
this.TimeInterval = TimeInterval;
this.Enabled = false;
}
/// <summary>
/// 定期执行事件
/// </summary>
public void Run()
{
while (true)
{
if (!this.Enabled)
{
Thread.Sleep(100);
continue;
}
if (TickEvent != null)
{
TickEvent();
}
Thread.Sleep(TimeInterval % 100);
for (int temp = 0; temp < TimeInterval / 100; temp++)
{
Thread.Sleep(100);
if (!this.Enabled)
{
break;
}
}
}
}
}