回答
windows任務計劃程序的粒度遠高於1ms(通常爲20ms)。您可以使用性能計數器來測試這個功能,以測量真正在Sleep()
函數中花費的時間。 (使用QueryPerformanceFrequency()
和QueryPerformanceCounter()
可以測量下至納秒的時間)。請注意0會使線程在儘可能短的時間內處於睡眠狀態。
但是,您可以通過使用timeBeginPeriod()
並傳遞1ms週期來更改此行爲。現在Sleep(0)
應該返回更快。
請注意,此功能調用是爲了以更高的準確度播放多媒體流。我從來沒有使用過這個問題,但是這樣一個快速時期的需求是非常罕見的。取決於你試圖達到的目標,可能有更好的方法來獲得你想要的準確性,而不是訴諸於這種「黑客」。
呃,win32 api中的sleep()函數?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298%28v=vs.85%29.aspx
或者,如果你正在使用Visual Studio 2010(或其他的C++ 0x瞭解編譯器)使用
#include <thread>
#include <chrono>
std::this_thread::sleep();
// or
std::this_thread::sleep_for(std::chrono::milliseconds(10));
隨着舊的編譯器,你可以有使用相關Boost Libraries
一樣方便不用說這裏的主要好處是便攜性和易於轉換的延遲pa拉米特到'人類'單位。
這不會在2010年。VS 2012,是的,但不是2010年。 – OldPeculier
@OldPeculier這只是意味着,這是現在的普遍適用的答案,多年來的道路:) – sehe
- 1. 在運行下一個操作之前進行x秒睡眠
- 2. 以C++爲平臺進行休眠操作:os x 10.8
- 3. C++的跨平臺睡眠函數
- 4. Windows是否進入睡眠模式或使用C++進行休眠?
- 5. 使用AsyncTask進行睡眠
- 6. 睡眠()/在Linux/Windows的
- 7. 秒錶在後臺睡眠模式下運行
- 8. 如何在javascript中進行睡眠?
- 9. Windows中的睡眠功能,使用C
- 10. 如何使用CPU在深度睡眠模式下執行任何操作
- 11. 睡眠和輸出齊平
- 12. 在睡眠狀態下使用nohup進程運行
- 13. 使用ANSI C在Windows平臺上進行FTP文件傳輸?
- 14. 睡眠 - 直到在c#
- 15. 「互動」在C++中睡眠
- 16. SIGALRM和睡眠()C++
- 17. Windows睡眠不一致?
- 18. C++跨平臺歸檔操作/顯示
- 19. 在UWP應用程序(Windows 10)中,如何防止Windows操作系統進入睡眠模式?
- 20. 如何進行主動睡眠?
- 21. 執行repreat bash命令時的睡眠持續時間操作
- 22. 在C或C++中進行Windows編程時,如何操作GUID?
- 23. 在.NET控制檯應用程序中,防止Windows睡眠/休眠
- 24. 在睡眠或在沒有用戶操作的後臺運行FireMessageReceived時運行Firebase雲消息
- 25. 睡眠()vs阻止進程
- 26. 錯誤後進入睡眠
- 27. Matlab進程*永遠*睡眠
- 28. 防止iPhone進入睡眠
- 29. PHP睡眠但在睡眠前執行什麼
- 30. Xamarin跨平臺:用戶界面重置後,睡眠和恢復
[Sleep](http://msdn.microsoft.com/en-us/library/ms686298%28VS.85%29.aspx)函數? – Praetorian
你確定睡眠是最好的解決方案嗎?它通常不是。 –
如果你需要睡幾毫秒注意sleep()可能有10ms或更多的分辨率 –