zoukankan      html  css  js  c++  java
  • 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);
                    }
                }
            }
  • 相关阅读:
    Algorithm --> 最长回文子串
    Algorithm --> 筛法求素数
    c++ --> const关键字总结
    c++ --> 友元函数
    c++ --> static关键字总结
    c++ --> 父类与子类间的继承关系
    c++ --> 操作符重载
    Java设计模式应用——观察者模式
    Ignite集群管理——基于静态IP的节点发现
    线性回归的应用——容量预测
  • 原文地址:https://www.cnblogs.com/NichkChang/p/5606359.html
Copyright © 2011-2022 走看看