void Wait(double Duration)
{
clock_t End;
End = clock() + (Duration*CLOCKS_PER_SEC);
while (clock() < End)
{
// This loop just stalls the program.
}
}
我的函数在一半时间内完美运行,但偶尔会在程序调用之前暂停程序。例如,拿下面的代码片段:为什么这个输出在等待之后呢?
cout << "This is\n";
Wait(2.5)
cout << "a test!";
你所期望的第一线,立即出现第二行到2.5秒后出现,但它2.5秒后有时会出现所有。这是怎么回事?
有几乎可以肯定是一个更好的方式做你真正想做的事情。让我们知道您的平台/编译器,我们可以给出更好的建议。 – 2010-11-09 18:50:59
这只会发生在你身上吗?请记住它是缓冲的。所以如果你不冲洗,我想你可能会得到你所遇到的行为。 – Bart 2010-11-09 18:51:55
我不确定这是否正确,但编译器是否有可能优化掉循环,因为它看起来没有做任何事情?看到这个问题:http://stackoverflow.com/questions/3592557/optimizing-away-a-while1-in-c0x – AshleysBrain 2010-11-09 18:57:42