2

我正在尝试将一些使用nanosleep()get_clocktime()Windows 的 linux 代码移植。据我所知,Windows 上确实没有那么多性能计时器,并且除了Sleep(). 我在 Windows 上找到了QueryPerformanceCounterQueryPerformanceFrequency,但我将如何调整它们以使用快速睡眠功能。我尝试移植的代码位于此 StackOverflow 帖子中:https ://stackoverflow.com/a/13559213/1161270

总的来说,我正在尝试将 linux 代码移植到使用nanosleep(),get_clocktime()和的 Windows 上struct timespec,但似乎没有真正的等价物。我也对如何添加油门延迟的其他想法持开放态度。我已经阅读了这些PdhGetFormattedCounterArray()函数,并且我有工作代码来监控计算机的输出带宽(以字节为单位),但我不确定如何使用这些数据来创建延迟以将数据发送到特定的 kb/s 速度,并且更愿意使用链接帖子中提供的其他方法。

感谢您的时间。

4

1 回答 1

0

请记住,大多数操作系统睡眠类型的实际精度通常以毫秒为单位(甚至是毫秒数)。看起来你可以睡眠更短的时间,但实际上,操作系统实际上并没有让进程进入睡眠状态,或者睡眠时间是“滴答”。对于 Linux(取决于内核配置)和 Windows 都是如此。

微软在这里解释了超时(而睡眠只是等待什么都不发生的超时):http: //msdn.microsoft.com/en-gb/library/windows/desktop/ms687069%28v=vs.85%29.aspx#等待函数和超时间隔

于 2013-02-21T20:46:09.360 回答