Windows服务定时执行方式
采用System.Timers.Timer 间隔固定时间执行
方式一:间隔固定的时间执行一次,关键代码:
protected override void OnStart(string[] args) { EventLog.WriteEntry("我的服务启动");//在系统事件查看器里的应用程序事件里来源的描述 writestr("服务启动");//自定义文本日志 System.Timers.Timer t = new System.Timers.Timer(); t.Interval = 1000; 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(1000 * 60); 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 == 8 && intMinute == 00) { try { System.Timers.Timer tm = sender as System.Timers.Timer; tm.Enabled = false; //执行方法 DoSomething(); tm.Enabled = true; } catch(Exception ex) { Log.OutputError(ex.Message); } } }