c# – 如何在每秒的TOP运行计时器? (当millis = 000时)
在我的应用程序中,我使用了System.Threading.Timer的数量并将此计时器设置为每1秒触发一次.我的应用程序每1秒执行一次线程,但执行毫秒是不同的.
在我的应用程序中,我使用了OPC服务器& OPC组.一个线程从OPC服务器读取数据(比如一个变量改变它的值,我希望每隔1秒将更改值的这一刻记录到我的应用程序中) 我的输出如下: 10:28:32.875 10:28:33.390 10:28:34.875 .... 10:28:39.530 10:28:40.875 但是,我想要以下结果: 10:28:32.000 10:28:33.000 10:28:34.000 .... 10:28:39.000 10:28:40.000 如何设置定时器以便在“000毫秒”执行回调? 解决方法
首先,这是不可能的.即使您要将“事件”安排在一段时间之前,它们会提前几毫秒被触发,然后将当前时间的毫秒分量与循环中的零进行比较,您的代码的流量控制可能会被取消.给定的时刻.
您将不得不重新考虑您的设计,而不是取决于事件何时触发,而是考虑将补偿延迟的毫秒数的算法. 此外,你对Threading.Timer没有太多帮助,如果你定期使用你自己的线程,你将有更好的机会: >检查当前时间,查看下一整秒的时间 您将根据您获得的结果计算您的’spice’因子 – 睡眠是否提前完成或落后于计划. 如果你要提供更多关于你明确需要在零毫秒时发生事件的信息,我可以帮助你摆脱这个要求. HTH (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – Win32 GUI程序中的布局
- postgresql – 在外键约束中MATCH FULL vs MATCH SIMPLE
- C++ list,STL list(双向链表)详解
- 设计模式六大原则(3):依赖倒置原则
- 正则使用小技巧
- 仿百度文库解决方案(四)-调用swfTools把pdf格式文件转换成
- Why are MVC & TDD not employed more in game archite
- 基于sax的xml解析 含源码 各种工具类(一)
- c为什么std :: multimap比std :: priority_queue慢
- 回复 "Globe" 关于 XML 编码转换的问题