我一直在 从斯坦福大学完成CS106B课程,在完成Boggle任务时,我注意到Windows上的Sleep()函数与Pause()函数的行为不同.出于测试目的,我只需设置电路板并使用提供的gboggle.h文件突出显示Boggle立方体,然后删除突出显示.以下是相关代码:
for(int row = 0; row < board.numRows(); row++)
{
for(int col = 0; col < board.numCols(); col++)
{
HighlightCube(row, col, true);
}
}
Pause(0.5);
for(int row = 0; row < board.numRows(); row++)
{
for(int col = 0; col < board.numCols(); col++)
{
HighlightCube(row, col, false);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用Pause(),立方体会突出显示,然后恢复正常.如果我使用Sleep()或Wait(),则立方体永远不会突出显示,并且程序中的延迟发生在甚至绘制板之前而不是for循环之间.相关的Wait()函数:
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
Run Code Online (Sandbox Code Playgroud)
取自这里.我在Windows XP上使用Visual …