我想每5秒做一次工作。当我说每5秒时,我是指根据系统时钟在00:00、00:05、00:10、00:15、00:20等时间点执行,而不是从计时器启动开始的每5秒。
是否有.NET计时器可以实现这个功能 - 我找不到一个?
我能想到两种解决方法...
使用高分辨率计时器,并在每个计时事件中读取系统时钟。在每过整5秒后立即触发我的工作。
使用高分辨率计时器,并在每个计时事件中读取系统时钟。在每过整5秒后立即触发第二个计时器,该计时器的分辨率为5秒。
对于这两种方法都不满意 - 第一种方法会给CPU带来不必要的负担(取决于分辨率如何)。第二种方法可能会在很长时间后漂移。我不知道这是否正确。