各位大侠们,求助下timer问题,
我写了个类:
public class DBConnection
{
System.Timers.Timer aTimer = new System.Timers.Timer();
public DBConnection(double second)
{
    
  aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
  aTimer.Interval = second;
  aTimer.Enabled = true;  GC.KeepAlive(aTimer);}
void OnTimedEvent(object sender, ElapsedEventArgs e)
{
receive();
}
public void receive()
{
console.writeline(datetime.now.tostring());
}
}我在另外的类里调用并改变定时时间,为什么定时的时间没有变呢???我传入20000秒,但是程序还是30000秒执行一次,这个怎么弄哦???请教大家。

解决方案 »

  1.   

    在另外的类里设置这个aTimer的Interval 
      

  2.   

    aTimer.Interval = second;不会吧
    代码就这些~~?其他地方改变了这个值?
      

  3.   

    你是不是搞错了
    代码改成这样,可以通过public class DBConnection
       {
           System.Timers.Timer aTimer = new System.Timers.Timer();
           public DBConnection(double second)
           {           aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
               aTimer.Interval = second;
               aTimer.Enabled = true;
               GC.KeepAlive(aTimer);
           }
           void OnTimedEvent(object sender, ElapsedEventArgs e)
           {
               receive();
           }
           public void receive()
           {
               System.Console.WriteLine(System.DateTime.Now.ToString());
           }
           public void SetInterval(double second)
           {
               aTimer.Interval = second;
           }
       }
    //调用 
                 DBConnection db = new DBConnection(1000);
                db.receive();
                db.SetInterval(20000);
                db.receive();
    //结果
    2010/7/26 23:49:11
    2010/7/26 23:49:12
    2010/7/26 23:49:13
    2010/7/26 23:49:14
    2010/7/26 23:49:15
    2010/7/26 23:49:16
    2010/7/26 23:49:17
    2010/7/26 23:49:18
    2010/7/26 23:49:19
    2010/7/26 23:49:19
    2010/7/26 23:49:21
    2010/7/26 23:49:23
    2010/7/26 23:49:25
    2010/7/26 23:49:27
    2010/7/26 23:49:29