在windows服务中如何使用定时器,试了几次都没有效果(定时器不运行),有没有好的办法
  
//服务开始的时候
protected override void OnStart(string[] args)
{
                       timer1 .Enabled =true;
                    }
  private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
i++;
StreamWriter w=f.AppendText ();
w.WriteLine(i.ToString());
w.Close ();
}

解决方案 »

  1.   

    可以用  System.Timers.Timer 替代
    Dim WithEvents bb As System.Timers.Timer = New System.Timers.Timer(1000)
      

  2.   

    这种方式我也试过了
      我是这样具体操作的
    protected override void OnStart(string[] args)
    {
                          mm();                    }
    private void mm()
    {
    System.Timers.Timer  t=new System.Timers.Timer (1000);
    t.Elapsed+=new System.Timers .ElapsedEventHandler(oo);
    t.AutoReset =false;
    t.Enabled =true;
    }
    private  void oo(object source, ElapsedEventArgs e) 
    {
    i++;
     f = new FileInfo(@"c:\\MyText.txt");
    StreamWriter w=f.AppendText ();
    w.WriteLine(i.ToString());
    w.Close ();
    }
    启动服务的时候可以在C:\MyText.txt中写入一条记录
     然后不管运行多久  也不会有记录产生
      

  3.   

    应该是生存周期问题
    将timer的定义放在函数外面,试一下