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