希望定期执行一个函数,但继续执行其余的程序循环
Wish To Execute A Function Periodically But Continue With The Rest Of Program Loop
目前我的程序包含一个主循环,它在 window 打开时执行。在循环内部有一个必须定期执行的函数(比如每隔一秒左右),但是主循环的其余部分必须继续执行并且循环重复而不执行周期函数直到时间到了。我的问题是 - 如何在不完全停止程序执行的情况下在主循环中定期执行函数?这是代码:
//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();
}
}
这将每秒执行一次函数。
目前我的程序包含一个主循环,它在 window 打开时执行。在循环内部有一个必须定期执行的函数(比如每隔一秒左右),但是主循环的其余部分必须继续执行并且循环重复而不执行周期函数直到时间到了。我的问题是 - 如何在不完全停止程序执行的情况下在主循环中定期执行函数?这是代码:
//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();
}
}
这将每秒执行一次函数。