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);
                }
            }
        }
原文地址:https://www.cnblogs.com/NichkChang/p/5606359.html