C#中如何稳定精确地每隔5ms执行某个函数?
在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C#的资料从专业入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!
在评论区回复“888”之后私信回复“888”,即可拿走。
没学过控制理论的人有-个误区。认为5ms内可以完成一件事情等价于每5ms做-次事情。
每5ms执行一段函数的意思是这样的。假设函数名是foo), 运行这个程序的CPU频率是1GHz,每5
百万个时钟周期,CPU就要进入foo)的执行。根据精度的要求,可能有几百个周期的误差阈值。而
且该误差不能随时间累积。就是说哪怕foo0已经执行了上千万次,任意两次相邻的foo0函数的执行
周期和5百万个时钟周期的差值必须小于误差阈值。同时相对于绝对时间的误差也必须小于阈值。
但是普通的windows或者linux.上想做到这一点非常困难。 根据系统时钟的API,每个5ms的间隔中
执行foo()是比较容易保证的。但是很难保证这段程序执行在5ms间隔的具体位置。有的时候可能是
5.001ms,有时可能5.002ms,有时可能是4.998ms。而且误差很容易跟着时间累积。