Странное «спящее» поведение между системами

У меня есть программа, которая использует вызов Win32 API Sleep , чтобы заставить поток ждать определенное время.
Короче говоря, он имитирует камеру, отправляя изображения, предварительно загруженные в память. Я использую Sleep для имитации частоты кадров - Sleep (1000 / fps)

Это отлично работает в моей системе разработки (Intel i5 (1-го поколения), Win7 64), но когда я запускаю его на другой системе (Intel i7-2600 - SandyBridge), время сна оказывается совершенно другим и неточным.

Например, Спящий режим (16) спит около 32 мс
Спящий режим (3) спит в течение 16 мс

Раньше я думал, что в окнах 15 мс , но у меня нет этого ограничения в моей системе разработки.

Есть идеи?

Кроме того, есть ли лучший способ достичь частоты кадров моего симулятора?

7
задан Christian.K 3 January 2012 в 19:41
поделиться