首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与系统时钟同步引发事件的定时器

与系统时钟同步引发事件的定时器
EN

Stack Overflow用户
提问于 2010-08-19 10:38:11
回答 2查看 621关注 0票数 3

我想每5秒做一次工作。当我说每5秒,我指的是根据系统时钟,在00:00,00:05,00:10,00:15,00:20。自计时器启动以来,不是每5秒一次。

有没有一个.net定时器可以完成这个任务-我找不到一个?

我能想到两个工作..。

  1. 有一个非常高分辨率的定时器,并在每个计时器事件中读取系统时钟。每隔5秒就立即启动我的工作。
  2. 有一个非常高分辨率的定时器,并读取系统时钟每个计时器事件。在整个5秒过后,立即启动一个具有5秒分辨率的第二个定时器。--

对这两种方法都不满意--第一种方法将不必要的负载放在cpu上(取决于恢复的高度)。第二种方法可能会在很长一段时间后发生变化。我不知道这是不是真的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-19 11:02:37

不是直接的,但是您可以设置一个短计时器来触发下一个5s倍数,在该事件中,处理程序设置每5s调度一次。

票数 1
EN

Stack Overflow用户

发布于 2010-08-19 11:09:00

所有常用的定时器(WinForms,线程,定时器)的分辨率都在20 ms左右。

您可以在一次拍摄模式中使用其中的任何一个,并重新计算毫秒到下一个5秒点的时间。预期错误为0..100 ms。

如果这是太多,你将需要一个雇用定时器,但请注意,他们是一个相当沉重的负担,您的系统。

但是请注意,您的线程/进程在任何时候都可能被替换为N*20 at。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3520912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档