希望定期执行一个函数,但继续程序循环的其余部分



当前我的程序由一个主循环组成,该循环在窗口打开时执行。在循环中,有一个函数必须定期执行(比如每隔一秒左右),但主循环的其余部分必须继续执行,循环必须重复,而不执行周期性函数,直到时间结束。我的问题是,如何在主循环中周期性地执行函数而不完全停止程序执行?这是代码:

//Prototypes
void functionToBeExecutedPeriodically();
void someFunc1();
void someFunc2();
int main()
{ 
    while (window.isOpen())
    {                                             
        functionToBeExecutedPeriodically();
        //This part of the loop must continue executing whilst the above 
        //idles for a limited period of time
        someFunc1();
        someFunc2();
        window.display();
    }
}

使用计时器,例如:

int main() { 
  sf::Clock timer;
  while (window.isOpen()) {
    if (timer.getElapsedTime() >= sf::seconds(1.0f)) {
      functionToBeExecutedPeriodically();
      timer.restart();
    }
    someFunc1();
    someFunc2();
    window.display();
  }                          
}

这将每秒执行一次函数。

相关内容

  • 没有找到相关文章

最新更新