C#Threading.Timer只勾选一次

时间:2014-05-20 09:39:15

标签: c# multithreading timer

对计时器非常困惑,他们似乎没有正常工作。

我创建了一个这样的计时器:

this._catTimer = new Timer(state => this.catTimer_Tick(null, new EventArgs()), null, 0, Timeout.Infinite);

立刻滴答一次。在回调结束时,我有这个:

this._catTimer.Change(5000, Timeout.Infinite);

但是我的计时器再也没有打过。到达这条线。

我也用5000, 0尝试了它,但它再也没有打过。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

尝试在catTimer_Tick方法中使用try / catch围绕逻辑。也许你的代码永远不会到达。改变行。

答案 1 :(得分:0)

您正在为构造函数(public Timer(TimerCallback callback, Object state, uint dueTime, uint period))Change( int dueTime, int period)方法中的period参数提供Timeout.Infinite,这意味着您永远不需要周期性信号。

  

指定的回调方法的调用之间的时间间隔   构造Timer时,以毫秒为单位。指定   Timeout.Infinite禁用定期信令,MSDN

答案 2 :(得分:0)

已修复此问题,这是由另一个阻塞的线程引起的。你不认为线程计时器会受到影响,但确实如此。