2023-05-14 07:00:05

休眠毫秒

我知道POSIX休眠(x)函数使程序休眠x秒。C++中是否有一个函数可以让程序休眠x毫秒?


当前回答

#include <windows.h>

语法:

Sleep (  __in DWORD dwMilliseconds   );

用法:

Sleep (1000); //Sleeps for 1000 ms or 1 sec

其他回答

对于C,在gcc中使用///。

#包括<windows.h>

然后使用Sleep();///Sleep()带有大写S,而不是Sleep()带有S。

//睡眠(1000)可能是1秒///。

clang支持sleep(),sleep(1)表示1秒延时/等待。

#include <windows.h>

语法:

Sleep (  __in DWORD dwMilliseconds   );

用法:

Sleep (1000); //Sleeps for 1000 ms or 1 sec

根据您的平台,您可以使用usleep或nanosleep。usleep已被弃用,并已从最新的POSIX标准中删除;纳米睡眠是优选的。

纳米睡眠是比usleep更好的选择,它对中断更有弹性。

在具有选择功能的平台(POSIX、Linux和Windows)上,您可以执行以下操作:

void sleep(unsigned long msec) {
    timeval delay = {msec / 1000, msec % 1000 * 1000};
    int rc = ::select(0, NULL, NULL, NULL, &delay);
    if(-1 == rc) {
        // Handle signals by continuing to sleep or return immediately.
    }
}

然而,现在有更好的选择。