小编acm*_*har的帖子

C++中Pause(),Sleep()和Wait()有什么区别?

我一直在 从斯坦福大学完成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 …

c++ windows winapi

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

winapi ×1

windows ×1