计时器动作疯狂,在不同的时间重置,而不是定义

时间:2014-01-30 16:30:03

标签: c# timer

我有这个班级

public class ResetClock
{
    public delegate void ResetFunc();
    private ResetFunc m_ResetFunc;
    private event ResetFunc Reseted;

    private Timer m_Timer;
    public ResetClock(int second)
    {
        double r = second * 1000;
        m_Timer = new Timer(r);
        m_Timer.AutoReset = false;
        m_Timer.Elapsed += new ElapsedEventHandler(onTimerTick);
        Reset();
    }

    public void SetResetMethod(ResetFunc method)
    {
        m_ResetFunc = method;
    }

    public void Terminate()
    {
        m_Timer.Stop();
        m_Timer.Dispose();

        m_Timer = null;
    }

    private void onTimerTick(object sender, ElapsedEventArgs e)
    {
        if (m_ResetFunc == null)
        {
            if (Reseted != null) Reseted();
        }
        else
        {
            m_ResetFunc();
        }

        Reset();
    }
    #region Public

    public void Reset()
    {
        m_Timer.Reset();
    }

    #endregion


}


internal static class  TimerEx{
    public static void Reset(this Timer timer){
        timer.Stop();
        timer.Start();
    }
}

当此类达到承包商中定义的秒数时,我的应用程序显示重置页面。当一个Reset()方法调用时,Timer应该自行复位并从0开始定时器。

由于某种原因,在应用程序运行几天之后,重置事件在几秒后触发,而不是我在第一次应用程序初始化中定义的秒数

有没有人有任何想法.... ???我把头撞到墙上找到答案..

0 个答案:

没有答案