日期:2014-05-17  浏览次数:21172 次

C#定时器
使用定时器timer类,我需要手动修改timer.interval属性,修改定时的时间,但是不能新建定时器,有方法吗??
也就是我一开始初始化了定时器,现在需要重新初始化定时器,用的是同一个定时器,有什么方法吗??
C#

------解决方案--------------------
重新赋值啊
比如改成5秒
timer.Interval = 5000;
赋值以后再等5秒触发
------解决方案--------------------
那个只会修改时间间隔,timer的Enable状态并不会变化
------解决方案--------------------
引用:
Quote: 引用:

那个只会修改时间间隔,timer的Enable状态并不会变化
我找到问题了,是重复初始化的问题,但是现在有出现问题了,就是定时器的时间不准了。6秒钟现在发给我两个数据。。。这个纠结了。

Interva把这个属性改下
------解决方案--------------------
参考官网的例子或者一些博客的例子看好好弄懂timer类先,看楼主的问题就是对Timer这个类不清楚的表现,多使用多测试就好了
------解决方案--------------------
引用:
Quote: 引用:

那个只会修改时间间隔,timer的Enable状态并不会变化
我找到问题了,是重复初始化的问题,但是现在有出现问题了,就是定时器的时间不准了。6秒钟现在发给我两个数据。。。这个纠结了。

你试下这样
      if(aTimer == null)
      {
           aTimer = new System.Timers.Timer();
           aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);           
      }          
      aTimer.Enabled = false;   //先关闭定时器,重设时间后再开启
      aTimer.Interval = (6000 * lenthStepTime);//1min-5min
      aTimer.Enabled = true;

------解决方案--------------------
禁用,之后重新赋值,启用
------解决方案--------------------
Timer有个Change的方法。
Timer.Change(Timeout.Infinite, Timeout.Infinite);