我想每5秒钟做一些工作。根据系统时钟,当我每5秒钟说出00:00,00:05,00:10,00:15,00:20的意思。自定时器启动后不是每5秒钟一次。计时器与系统时钟同步上升事件
是否有.net计时器可以做到这一点 - 我找不到一个?
我能想到的两项工作变通的...
有一个非常高的分辨率计时器和读取系统时钟每个计时器事件。每完成5秒钟后,立即开始工作。
具有非常高分辨率的定时器并读取每个定时器事件的系统时钟。在每个整个5秒钟过后,立即启动分辨率为5秒的第二个定时器。
对任何一种方法都不满意 - 第一种方法会在CPU上带来不必要的负载(取决于分辨率有多高)。第二种方法可能会在很长时间后发生漂移。我不知道这是否属实。
如果我让计时器继续运行,每5秒发生一次事件,它会最终漂移还是平均长时间运行?我不介意由于线程引起的一些漂移,但只要在进程交换回来的时候自行分类,那就没问题了。 – flobadob 2010-08-19 13:35:46