C++ C++;:比较当前时间和下一个工作时间
我正在做一个自动化程序。其思想是,在执行一个动作后,它会增加下一个动作应该执行的时间。我选择这个方法,而不是简单的C++ C++;:比较当前时间和下一个工作时间,c++,time,chrono,C++,Time,Chrono,我正在做一个自动化程序。其思想是,在执行一个动作后,它会增加下一个动作应该执行的时间。我选择这个方法,而不是简单的Sleep()语句,因为我在等待用户键盘输入,它可以做各种事情 我遇到的问题是,std::chrono::staddy\u clock::now()>下一个工作周期似乎总是计算为true,因此没有等待周期 这是我第一次使用这些函数。谢谢你的帮助 auto next_work_period = std::chrono::steady_clock::now(); while (
Sleep()
语句,因为我在等待用户键盘输入,它可以做各种事情
我遇到的问题是,std::chrono::staddy\u clock::now()>下一个工作周期
似乎总是计算为true,因此没有等待周期
这是我第一次使用这些函数。谢谢你的帮助
auto next_work_period = std::chrono::steady_clock::now();
while (1) {
// To keep disk usage low, 100 may need to be changed
Sleep(100);
// If current time is time to do next action
if (std::chrono::steady_clock::now() > next_work_period) {
std::cout << "Has been 20 seconds" << endl;
// Calculate next click time, 20 seconds from now
next_work_period += std::chrono::milliseconds((20) * 1000);
}
}
auto next_work_period=std::chrono::stable_clock::now();
而(1){
//要保持较低的磁盘使用率,可能需要更改100
睡眠(100);
//如果当前时间是执行下一个操作的时间
如果(标准::时钟::稳定时钟::现在()>下一个工作周期){
std::cout在下一个工作时间睡觉怎么样
auto next_work_period = std::chrono::steady_clock::now();
while (1) {
std::this_thread::sleep_until(next_work_period);
doTheThing();
// Calculate next click time, 20 seconds from now
next_work_period += std::chrono::seconds(20);
}
这是否仍然允许我在睡眠期间正确地检查按键,直到,或者它在该行暂停,类似于常规睡眠语句?@Grehgous This只睡眠当前线程。所有其他线程都保持正常运行。