采用System.Timers.Timer 间隔固定时间执行
方式一:间隔固定的时间执行一次,关键代码:
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("我的服务启动");//在系统事件查看器里的应用程序事件里来源的描述
writestr("服务启动");//自定义文本日志
System.Timers.Timer t = new System.Timers.Timer();
t.Interval = ;
t.Elapsed += new System.Timers.ElapsedEventHandler(ChkSrv);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}
方式二、根据时分秒在固定时刻执行一次,关键代码:
private System.Timers.Timer time;
protected override void OnStart(string[] args)
{
time = new System.Timers.Timer( * );
time.Elapsed += this.ElapsedEvent;
time.AutoReset = true;
time.Enabled = true;
} private void ElapsedEvent(object sender, ElapsedEventArgs e)
{
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute; if (intHour == && intMinute == )
{
try
{
System.Timers.Timer tm = sender as System.Timers.Timer;
tm.Enabled = false; //执行方法
DoSomething(); tm.Enabled = true;
}
catch(Exception ex)
{
Log.OutputError(ex.Message);
}
}
}