休眠几毫秒

新手上路,请多包涵

我知道 POSIX sleep(x) 函数使程序休眠 x 秒。是否有使程序在 C++ 中休眠 x 毫秒 的功能?

原文由 Prasanth Madhavan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 332
2 个回答

请注意,毫秒没有标准的 C API,因此(在 Unix 上)您将不得不接受 usleep ,它接受微秒:

 #include <unistd.h>

unsigned int microseconds;
...
usleep(microseconds);

原文由 Niet the Dark Absol 发布,翻译遵循 CC BY-SA 3.0 许可协议

一个答案的优雅解决方案,稍加修改。如果没有更好的功能可用,可以轻松添加 select() 用法。只需制作使用 select() 等的函数……

代码:


#include <iostream>

/*
 Prepare defines for millisecond sleep function that is cross-platform
*/
#ifdef _WIN32
#  include <Windows.h>
#  define sleep_function_name           Sleep
#  define sleep_time_multiplier_for_ms      1
#else
#  include <unistd.h>
#  define sleep_function_name           usleep
#  define sleep_time_multiplier_for_ms      1000
#endif

/* Cross platform millisecond sleep */
void cross_platform_sleep_ms(unsigned long int time_to_sleep_in_ms)
{
   sleep_function_name ( sleep_time_multiplier_for_ms * time_to_sleep_in_ms );
}

原文由 user1444314 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题