C ++主循环定时器(C++ main loop timer)

编程入门 行业动态 更新时间:2024-10-20 09:34:31
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; }

更多推荐

本文发布于:2023-08-02 09:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1372323.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:定时器   main   timer   loop

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!