c ++结构:以特定时间速率重复一组函数

时间:2011-10-31 16:00:29

标签: c++ time structure

所以我坚持使用一个小小的c ++程序。我在w7环境中使用“codeblocks”。

我做了一个显示ASCII地图和标记的功能。第二个函数更新该地图上的标记位置。

我想知道如何制作我的主要结构,以便标记得到更新并显示地图,并以一定的时间速率重复。我可以使用哪些功能来实现这一目标。我应该采取什么策略?

every x times/second DO { showmap(); updatePosition();}

我是c ++初学者,希望你能帮忙!

3 个答案:

答案 0 :(得分:2)

带有usleep的循环

unsigned XtimesPerSecond = 5;    // for example
unsigned long long microseconds = 1000000 / XtimesPerSecond;

do
{
    showmap();
    updatePosition();
    usleep(microseconds);
} while(true);

答案 1 :(得分:1)

根据您的计划需要执行的其他操作,您可能需要使用 event driven programming 。如果更新该标记是它唯一要做的事情,那么带有睡眠的简单while循环就足够了,如其他答案所示。

为了进行事件驱动编程,你通常需要一个事件循环 - 这是你在main中调用的函数,它等待事件并调度它们。大多数事件循环将提供计时器事件 - 其中,基本上,您要求事件循环在给定的时间间隔过去后调用函数X.

您很可能不想编写自己的事件循环。事件循环有很多选择,具体取决于编程语言和所需的可移植性等许多内容。

事件循环的一些示例:

答案 2 :(得分:0)

似乎你想要像游戏引擎一样实现无限循环。

尝试这样做:

while (true)
{
    showmap();
    updatePosition();
    sleep(1);
}