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
;
}
}
}
}
}