【问题标题】:Wish To Execute A Function Periodically But Continue With The Rest Of Program Loop希望定期执行一个函数但继续执行程序循环的其余部分
【发布时间】:2015-04-17 09:32:35
【问题描述】:

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

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

【问题讨论】:

标签: c++ loops main sfml


【解决方案1】:

以计时器为例:

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

这将每秒执行一次函数。

【讨论】:

  • 谢谢 - 我不知道 sfml 有它自己的计时器。该程序现在的运行方式更加符合其应有的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多