根据previous question的答案,我正在尝试使用sleep_until()
,但无法找到一个教程,告诉我如何在实际时间(如1400:00h)中使用它。
有这样的例子:std::this_thread::sleep_until(system_clock::now() + seconds(10));
,但我想要的东西实际上让我指定一个时钟时间。这应该是什么格式?我会很感激任何例子。
答案 0 :(得分:7)
要等到指定的时钟时间,您需要获得代表该时钟时间的time_t
,然后使用std::chrono::system_clock::from_time_t
创建一个std::chrono::system_clock::time_point
,然后您可以将其用于xxx_until函数,例如std::this_thread::sleep_until
。
e.g。
void foo(){
tm timeout_tm={0};
// set timeout_tm to 14:00:01 today
timeout_tm.tm_year = 2013 - 1900;
timeout_tm.tm_mon = 7 - 1;
timeout_tm.tm_mday = 10;
timeout_tm.tm_hour = 14;
timeout_tm.tm_min = 0;
timeout_tm.tm_sec = 1;
timeout_tm.tm_isdst = -1;
time_t timeout_time_t=mktime(&timeout_tm);
std::chrono::system_clock::time_point timeout_tp=
std::chrono::system_clock::from_time_t(timeout_time_t);
std::this_thread::sleep_until(timeout_tp);
}
答案 1 :(得分:0)
看看这里:std::chrono
您需要各种日期/时间表示格式。
答案 2 :(得分:0)