Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:比较当前时间和下一个工作时间_C++_Time_Chrono - Fatal编程技术网

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只睡眠当前线程。所有其他线程都保持正常运行。