gpt4 book ai didi

windows - 如何在 Windows 中以 30 毫秒的间隔执行 10 毫秒的 CPU 时间操作?

转载 作者:可可西里 更新时间:2023-11-01 11:28:50 24 4
gpt4 key购买 nike

如何在 Windows 中执行一个需要大约 10 毫秒 CPU 时间且间隔正好为 30 毫秒的操作?(我可以允许 +/- 5 毫秒余量)

我尝试过但已经失败了 sleep API :)

接下来,我想到了 MM Timer API。但是这篇博文说这是不可能的。
Why are the Multimedia Timer APIs (timeSetEvent) not as accurate as I would expect?

此外,MSDN 说 timeSetEvent 已过时,我们必须使用 CreateTimerQueueTimer API。 http://msdn.microsoft.com/en-us/library/dd757634(v=vs.85).aspx

CreateTimerQueueTimer 能否成为解决方案?

或者我是否需要使用 REALTIME_PRIORITY_CLASS 进程(我感觉不舒服)?

最佳答案

为此,我喜欢 CreateWaitableTimer。您可以使用 WaitForSingleObject 在专用的工作线程上等待它,使用 WaitForMultipleObjects 的共享工作线程,甚至通过编写主消息循环来使用 在您的 UI 线程上等待它MsgWaitForMultipleObjects.

除非您的系统严重过载,否则您的 5 毫秒精度应该是可以实现的。线程优先级会有所帮助,但 I/O 很少有优先级,因此如果您对文件进行阻塞读取,您可能会排在低优先级线程从同一磁盘读取请求之后。尝试提前加载任何数据或使用重叠请求,并在您的计时器间隔到期时处理请求尚未完成的情况。

而且我肯定会建议使用 timeBeginPeriod 来使所有系统计时器更精确。

关于windows - 如何在 Windows 中以 30 毫秒的间隔执行 10 毫秒的 CPU 时间操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26019196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com