gpt4 book ai didi

c++ - C++ 的跨平台 sleep 功能

转载 作者:IT老高 更新时间:2023-10-28 12:33:54 26 4
gpt4 key购买 nike

是否可以使用宏制作跨平台的 sleep 代码?例如

#ifdef LINUX
#include <header_for_linux_sleep_function.h>
#endif
#ifdef WINDOWS
#include <header_for_windows_sleep_function.h>
#endif
...
Sleep(miliseconds);
...

最佳答案

是的。但这仅适用于 C++11later .

#include <chrono>
#include <thread>
...
std::this_thread::sleep_for(std::chrono::milliseconds(ms));

其中 ms 是您想要休眠的时间,以毫秒为单位。

您也可以将 milliseconds 替换为 nanosecondsmicrosecondssecondsminutes小时。 (这些是 std::chrono::duration 类型的特化。)

更新:C++14 ,如果你睡了一段时间,例如 100 毫秒,std::chrono::milliseconds(100) 可以写成 100ms。这是由于 user defined literals ,在 C++11 中引入.在 C++14 chrono 库已扩展为包含以下用户定义的文字:

实际上这意味着你可以写出这样的东西。

#include <chrono>
#include <thread>
using namespace std::literals::chrono_literals;

std::this_thread::sleep_for(100ms);

请注意,虽然 using namespace std::literals::chrono_literals 提供了最少的 namespace pollution , 这些运算符在 using namespace std::literalsusing namespace std::chrono 时也可用。

关于c++ - C++ 的跨平台 sleep 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com