【发布时间】:2019-11-15 12:49:01
【问题描述】:
我想在指定的时间内运行一段代码。这似乎不起作用。为什么?
int sec = 5;
auto start = std::chrono::steady_clock::now();
while (std::chrono::duration<double, std::milli>(
start - std::chrono::steady_clock::now()
).count() < sec * 1000)
{
// do stuff
};
【问题讨论】:
-
循环似乎没有终止。
-
运行时间超过 5 秒。
-
now晚于start。请检查您的减法 -
好吧,也许有人会觉得这很有帮助。我找到了答案,所以我很高兴。
-
@uneven_mark:虽然这个问题是微不足道的,但它不是题外话。很多时候,我们在人们的代码中发现的错误并不是他们特定领域考虑的核心,而是更简单和愚蠢的东西。