如何在C/C中实现定时器++

发布于 2024-09-30 10:02:04 字数 147 浏览 6 评论 0原文

我想每 2 小时后调用一次商务舱的功能。 如果不使用 while 循环,我无法在 C/C++ 中实现相同的方法。 我的问题是我不能使用 while(1) 因为这不会返回控制以进一步执行。

在这方面的任何指针都会有帮助......:)

thnaks

I want to call a function of the business class after every 2 hours.
I m not getting any way to implement same in C/C++ without using a while loop.
My problem is that i cannot use while(1) as this does not retun back the control for further execution.

Any pointer in this regards wud be helpful....:)

thnaks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蓝眼泪 2024-10-07 10:02:04

在纯 C 语言中,我会考虑使用 alarm(2)setitimer(2) 函数。或者,生成一个线程并从那里进行等待。

如果您决定使用警报或 setitimer 路由,请记住,您需要编写信号处理程序,并且可能需要一个调度循环来注意是时候进行定期维护调用了,因为这样做被认为是不好的做法。信号处理程序中的一些东西。

In plain C, I would've considered using the alarm(2) or setitimer(2) functions. Alternatively, spawn a thread and do the waiting from there.

If you decide on the alarm or setitimer routes, bear in mind that you'll need to write signal handlers and may need a dispatch loop to note that it is time to do the periodic maintenance calls, as it's considered bad practise to do quite a few things from within a signal handler.

静若繁花 2024-10-07 10:02:04

对于一般解决方案,您可以启动一个线程,该线程在 2 小时后向主线程发送一些消息。

对于 Linux,您可以使用:

http://linux.die.net/man/3/alarm

然后处理SIGALRM信号

For a general solution, you could start a thread, which sends some message to the main thread after 2 hours.

For linux, you could use this:

http://linux.die.net/man/3/alarm

and then handle the SIGALRM signal

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文