1

我想编写一个程序来模拟一个食堂,其中顾客每隔 10~50 秒进入食堂。所以我希望每 10~50 秒调用一次函数,以显示要调用的函数中存在的菜单卡

4

4 回答 4

6

Boost库在Boost.Asio中提供了这一点,并在其教程中明确介绍了这一点:

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

于 2013-03-28T13:43:42.947 回答
4

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

于 2013-03-28T13:32:36.770 回答
1

有两种方法: 1.异步 2.同步

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

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

  2. 如果您想要一种轮询方法,您最好使用类似的方法

      for(;;) 
        {
    
        Say_Hello();
        // Sleep for 50*1000ms
        Sleep(50000);
    
        }
    
于 2013-03-28T13:34:11.100 回答
1

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

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

于 2013-03-28T14:06:31.510 回答