C ++主循环定时器(C++ main loop timer)
我的C ++程序有一个主循环,直到程序完成。 在主循环中,我希望能够在特定的时间间隔内使某些事情发生。 喜欢这个:
int main() { while(true) { if(ThirtySecondsHasPassed()) { doThis(); } doEverythingElse(); } return 0; }在这种情况下,我希望doThis()每三十秒调用一次,如果不需要调用,则允许主循环继续并处理其他所有内容。
我怎样才能做到这一点? 同时请记住,这个程序的目的是持续运行几天,几周甚至几个月。
My C++ program has a main loop which runs until the program says it's done. In the main loop I want to be able to make certain things happen at certain time intervals. Like this:
int main() { while(true) { if(ThirtySecondsHasPassed()) { doThis(); } doEverythingElse(); } return 0; }In that case, I would want doThis() to be called every thirty seconds, and if it doesn't need to be called, allow the main loop to continue and process everything else.
How can I do this? Also keep in mind that this program is meant to run continually for days, weeks, even months.
最满意答案
这是一个更一般的课程,你可以有独立的计时器。
class Timer{ public: Timer(time_type interval) : interval(interval) { reset(); } bool timedOut(){ if(get_current_time() >= deadline){ reset(); return true; } else return false; } void reset(){ deadline = get_current_time() + interval; } private: time_type deadline; const time_type interval; }Here's a more general class, where you can have seperate timers.
class Timer{ public: Timer(time_type interval) : interval(interval) { reset(); } bool timedOut(){ if(get_current_time() >= deadline){ reset(); return true; } else return false; } void reset(){ deadline = get_current_time() + interval; } private: time_type deadline; const time_type interval; }更多推荐
发布评论