C++:将当前时间与下一个工作时间进行比较

C++: comparing current time to next work time

本文关键字:时间 工作 比较 下一个 C++      更新时间:2023-10-16

我正在研究一个自动化程序。这个想法是,在执行一个操作后,它会增加下一个操作应该执行的时间。我选择了这种方法而不是简单的Sleep()语句,因为我正在等待执行各种操作的用户键盘输入。

我遇到的问题是,std::chrono::steady_clock::now() > next_work_period似乎总是评估为真,因此没有等待期。

这是我第一次使用这些函数。我感谢任何帮助!

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::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);
}