delay()和sleep()函数都暂停系统一段时间,延迟以毫秒为参数,而睡眠以秒为参数。除此之外,这两个功能有什么不同吗?其中,哪个更准确?
答案 0 :(得分:2)
他们做同样的事情,除了一个人睡了几秒钟而另一个人睡了几毫秒。
您应该使用Reference to std::this_thread::sleep_for:
std::this_thread::sleep_for
如果可以,而不是c ++。 windows.h有睡眠,unix有睡眠。
这是在线发现的另一种可能更符合您需求的实现:
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) || defined(__TOS_WIN__)
#include <windows.h>
inline void delay( unsigned long ms )
{
Sleep( ms );
}
#else /* presume POSIX */
#include <unistd.h>
inline void delay( unsigned long ms )
{
usleep( ms * 1000 );
}
#endif
答案 1 :(得分:0)
睡眠将CPU释放指定的数量,以便其他进程可以执行。 虽然Delay只是忙于等待金额到期,然后在到期后继续,但是在此期间它不执行任何其他过程。