Windows C ++和微秒睡眠的可能性

无论如何,在Windows环境中睡觉~1微秒? 经过研究和阅读许multithreading和各种网站,我没有看到这是可能的。 由于调度程序似乎是限制因素,它运行在1毫秒级别,所以我相信如果不去实时操作系统就无法做到这一点。

Solutions Collecting From Web of "Windows C ++和微秒睡眠的可能性"

它可能不是最便携的,我没有自己使用这些函数,但可能使用这个链接的高分辨率定时器部分中的信息并阻止: QueryPerformanceCounter

尽管Windows声称自己不是“实时”操作系统,但事件可以以微秒的分辨率生成。 在其他地方已经描述了使用系统时间(file_time)和性能计数器频率的组合。 但是,谨慎实施处理器关联性和进程/线程优先级,可以以微秒的分辨率打开定时事件的大门。

由于Windows调度程序和Windows计时器服务确实依赖于系统中断机制,因此只能通过轮询来调整微秒。 特别是多核系统轮询不再那么难看了。 轮询只能持续最短的中断时间。 多媒体定时器接口允许将中断周期降低到大约1ms,因此可以获得接近期望的(微秒分辨率)时间并且轮询最多持续1ms。

我可以在位于windowstimestamp.com上的Windows时间戳项目中找到我为Windows执行微秒级解析时间服务,测试代码和详细描述