我想编写一个程序来模拟一个食堂,其中顾客每隔 10~50 秒进入食堂。所以我希望每 10~50 秒调用一次函数,以显示要调用的函数中存在的菜单卡
问问题
28411 次
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.同步
假设您使用的是 Win32、C++。您可以使用 Win32 API SetTimer
UINT_PTR timerid = SetTimer(NULL, 0, 毫秒, &callback);
如果您想要一种轮询方法,您最好使用类似的方法
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 回答