我做了一个windows服务程序,里边有一timer控件,用于每隔一段时间把取得的数据更新到数据库中,
可是刚刚运行时没有问题,一会timer控件就失效了,不知是怎么回事,高手指教。

解决方案 »

  1.   

    运行完一次之后你要再次enabled这个控件。
      

  2.   

    默认情况下timer是不会在执行一次之后失效的,但如果失效了,请检查它是不是还处于enabled状态。
      

  3.   

    肯定是有地方把这个控件给close或enable=false了
      

  4.   

            private void timer1_Tick(object sender, EventArgs e)
            {
                timer1.Enabled = false;            // 处理其它事件            timer1.Enabled = true;
            }
      

  5.   

    看看你有没有地方enable了.注意:5楼的代码很好处理一次的时候最好把他enable = false
    处理完了再 enable = true;因为你在处理你的业务的同时.timer也是在计时的.如果不这样做的话,timer设定的时间比较小或是你的业务处理时间比较长.会有冲突
      

  6.   

    有可能是你的服务关闭了,关闭了也会这样你到stop那里写个东西,比如插个数据入库之类的测试下如果是这样的话,你加个protected override void OnPause()
            {
                base.OnPause();
            }        protected override void OnContinue()
            {
                base.OnContinue();
            }
    试下
      

  7.   

    服务中得用System.Timers.Timer而不能用System.Windows.Forms.Timer
      

  8.   

    System.Windows.Forms.Timer 这个我已经知道了,刚开始时确实是用的这个,用这个时timer控件根本就不运行,后来才
    换成System.Timers.Timer的,结果老是失效
      

  9.   

    Timer 中是不是有 错误代码,被catch到timer外面去了.
      

  10.   

    老大们给个说法呀,为什么一样的代码,放到windows服务中timer控件运行一段时间就会失效,而放到windows窗口程序中,我测试了一夜timer控件,没有出现失效的情况,
    声明的是,的服务中已将timer控件改为System.Timers.Timer。