需要1毫秒定时发送数据,Timer误差太大,该怎么实现呢?
------解决思路----------------------
高精度定时器的实现可以参考:http://blog.gkarch.com/2015/09/high-resolution-timer.html
可以使用现成的工具:http://www.gkarch.com/docs/tundra-timer/
------解决思路----------------------
windows上用户态想实现1ms定时只可能用多媒体定时器或者自旋,多媒体定时器你可以参考 http://pinvoke.net/default.aspx/winmm/timeSetEvent.html 里面的例子,我原来试验过这个误差一般在 20 微秒内,最大见过 100 微秒。自旋的话那就是用高精度计时工具 Stopwatch 循环判断,会完全占用 CPU 的一个核心。
不过主要问题是你的任务是否能1ms内执行完,如果执行不完怎么处理。