定时器不准确

时间:2013-11-26 04:21:15

标签: c# timer

我试图在调用方法之前实现10秒的延迟。但是,该方法仅在一秒钟内被调用。

 private void closeDoors(Floor floor)
    {
        Timer timer = new Timer();
        timer.Interval = 10000;
        timer.Tick += delegate 
        {
            DoorManager(floor, Operation.CLOSE, null);
        };
        timer.Start();
    } 

我哪里错了? 谢谢你的助手。

2 个答案:

答案 0 :(得分:1)

由于在完成工作后没有停止计时器,可能会出现问题。以下修改后的代码应该有效(只要我遇到过Timer):

private void closeDoors(Floor floor) {
    Timer timer = new Timer();
    timer.Interval = 10000;
    timer.Tick += (s,e) => {     
        DoorManager(floor, Operation.CLOSE, null);
        ((Timer)s).Stop();
    };
    timer.Start();
} 

答案 1 :(得分:0)

我设法通过增加定时器间隔来修复它,因为时间延迟是由另一个方法调用insideDoorManager()调用的进程使用的。