wait_for
是C++标准库 <chrono>
中的一个函数,用于等待一个给定的时间间隔。它接受两个参数:一个表示等待时间的 std::chrono::duration
对象,以及一个表示是否应该继续等待的布尔值(通常命名为 is_timeout
)。如果 is_timeout
为 true
,则当指定的时间间隔过去后,wait_for
将返回;如果为 false
,则 wait_for
将一直等待,直到某个条件满足为止。
下面是一个简单的示例,演示了如何使用 wait_for
函数:
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Waiting for 5 seconds...\n";
// 等待5秒钟
auto result = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::seconds(5));
auto end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed = end - result;
if (elapsed.count() >= 5) {
std::cout << "5 seconds have passed.\n";
} else {
std::cout << "Time has not passed yet.\n";
}
return 0;
}
在这个示例中,我们使用 std::this_thread::sleep_for
函数使当前线程休眠5秒钟。然后,我们使用 std::chrono::system_clock::now()
获取当前时间,并计算经过的时间。最后,我们根据经过的时间判断是否已经等待了5秒钟。