1,System.Timers.Timer
可以实现在设定的间隔内执行Elapsed事件,构造参数为毫秒
2,DateTime.Now.Ticks
获取当前时间与0001年1月1日00:00的时间间隔间隔数,单位是0.1纳秒(千万分之一秒)
public class TimerManager
{
private long timeTicks;
private Timer timer;
public TimerManager()
{
timeTicks = DateTime.Now.Ticks;
timer = new Timer(1000);
timer.Elapsed += Time_Elapsed;
timer.Start();
}
void Time_Elapsed(object sender, ElapsedEventArgs e)
{
//时间间隔完成之后调用的事件方法
if (DateTime.Now.Ticks - timeTicks >= 3)
{
Console.WriteLine("已经过了3秒了");
timer.Close();
}
}
static void TimeTicks()
{
TimerManager timerManager = new TimerManager();
}
构造一个新的TimerManager类,即可进行计时。上述程序,是每隔1000毫秒(1秒)判断一次间隔时间是否达到3秒。
通常扩展用法,可以在构造方法内加入需求的时间间隔和委托方法,设定在任意时间之后执行想要的方法!
Example:
public delegate void TimeDelegate();
public class TimerManager
{
private long timeTicks;
private Timer timer;
private TimeDelegate timeDelegate;
public TimerManager(long timeTicks,TimeDelegate td)
{
this.timeTicks = DateTime.Now.Ticks + timeTicks;
this.timeDelegate = td;
timer = new Timer(1000);
timer.Elapsed += Time_Elapsed;
timer.Start();
}
void Time_Elapsed(object sender, ElapsedEventArgs e)
{
//时间间隔完成之后调用的事件方法
if (DateTime.Now.Ticks - timeTicks >= 0)
{
timeDelegate();
Console.WriteLine("已经过了3秒了");
timer.Close();
}
}