我有任何方法睡眠窗口操作系统下的线程高达100.8564毫秒。 我正在使用多媒体计时器,但其分辨率至less为1秒。 请引导我,以便我可以处理毫秒的小数部分。
如何检查Windows用户是否具有C权限?
有谁知道如何configurationeclipse不要复制字体的颜色/背景做CTRL-C
为什么这个可变参数函数在Windows x64的第四个参数上失败?
如何扩展CAxHostwindow?
是的,你可以做到这一点。 请参阅QueryPerformanceCounter()以读取准确的时间,并进行繁忙的循环。
这将使您能够以最高10纳秒的分辨率进行等待,但是,如果线程调度程序决定在周期结束的时刻从您那里窃取控制权,它将会,并且除了分配您的过程实时优先级。
你也可以看看这个: http : //msdn.microsoft.com/en-us/library/ms838340(WinEmbedded.5).aspx
开发了几个框架来在Windows上进行硬实时操作。
否则,你的问题可能意味着你可能做错了什么。 有许多机制需要精确的延迟,比如使用合适的总线驱动程序(如果是硬件/ IO,或者各自的DMA,如果您正在设计驱动程序)等等。
请告诉我们你到底在做什么。
我不知道你的用例,但即使是高端的实时操作系统也很难在时序上实现100ns的抖动。
在大多数情况下,我发现你不需要重现性的精度,但只是长时间的漂移。 在这方面,保持时间线并以期望的精度计算事件是相对简单的。 然后使用该时间线来同步即使在10 ms的情况下也可能关闭的事件。 只要这些错误不加起来,我发现我得到了足够的性能。
如果你需要保证延迟,你不能用MS Windows。 这不是一个实时操作系统。 它可能会在另一个线程或进程中进行交换。 你可能会得到一个缓存未命中。 当我做一个机器人控制器的时候,我使用了一个名为On Time RTOS 32的操作系统。它有一个MS Windows API仿真层。 您可以在Visual Studio中使用它。 你需要这样的东西。
多媒体计时器的分辨率比一秒钟好得多。 当您首先调用timeBeginPeriod(1)时,它可以下降到1毫秒。 当回调迟交时,定时器会自动调整下次通话的时间间隔。 在多任务操作系统上这是不可避免的,总会有一些内核线程的优先级高于你的延迟回调。
平均而言,平均工作效果会非常好,但最坏的情况是数百毫秒。 显然,你的要求是远远不能满足Windows的要求的。 您将需要某种微控制器来提供这种执行保证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。