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

时间:2015-02-16 19:19:15

标签: c++ loops main sfml

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

//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();
    }
}

1 个答案:

答案 0 :(得分:1)

以计时器为例:

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

那将每秒执行一次。