|
1
3
XP的时间分辨率约为10ms,系统基本上每10ms“滴答”一次。因此,睡眠并不是一种准确计时的好方法。我很确定win2000有相同的分辨率,但如果我错了,这可能是一个原因。 您可以将分辨率更改为至少1ms-请参阅 http://technet.microsoft.com/en-us/sysinternals/bb897569.aspx http://www.lucashale.com/timerresolution/ 可能是你的旧机器上的分辨率被改变了。 |
|
|
3
1
通常Sleep()会导致延迟~15ms或周期倍数~15ms,具体取决于睡眠值。 以下伪代码是找出其工作原理的好方法之一:
此外,它还将表明,对于Windows XP和Vista/Win 7,此代码的行为是不同的 |
|
|
4
1
正如其他人所提到的,睡眠的准确性很差。
Asio为您的平台使用最有效的实现;在Windows上,我认为它使用重叠IO。
|
|
|
5
0
|
|
|
6
0
睡眠取决于系统时钟。你的新机器可能和你以前的机器有不同的计时。从 documentation :
文档似乎暗示你可以尝试让它更准确,但如果我是你,我不会这么做。只需使用计时器。
你用什么计时器代替了它?如果你使用了SetTimer(),那么这个计时器也很糟糕。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |