如何每隔x秒调用一次函数

时间:2013-03-28 13:30:26

标签: c++ windows

我想写一个程序来模拟一个自助餐厅,顾客每隔10~50秒进入一个自助餐厅。所以我希望每隔10~50秒调用一个函数来显示要调用的函数中的菜单卡

4 个答案:

答案 0 :(得分:3)

在主循环中,获取时间并将其与上次调用函数进行比较(在声明函数时初始化为“now”)。如果它大于你的间隔,那么调用你的函数并将“last-time-called”变量设置为当前时间。

答案 1 :(得分:3)

Boost库在Boost.Asio中提供了此功能,并在其教程中明确涵盖了这一点:

如果你在网上搜索C ++时没有找到Boost库,你的google-fu就会很弱。 ; - )

答案 2 :(得分:1)

有两种方法:1.Asynchronous 2. Synchronous

  1. 假设您使用的是Win32,C ++。您可以使用Win32 API SetTimer

    UINT_PTR timerid = SetTimer(NULL,0,毫秒,&回调);

  2. 如果你想要一个轮询方法你最好使用类似的东西

      for(;;) 
        {
    
        Say_Hello();
        // Sleep for 50*1000ms
        Sleep(50000);
    
        }
    

答案 3 :(得分:0)

对于更多跨平台的计时器并使用c ++ STL,请查看C++ Cross-Platform High-Resolution Timer

从那里开始,只需使用上面提到的两个跨平台计时器,每隔10~50秒在一个循环中创建和调用一个函数。