我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时
发布时间:2020-12-16 05:46:51 所属栏目:百科 来源:网络整理
导读:目前我在单线程应用程序中从别人的库中运行函数Foo.大多数时候,我打电话给Foo,这真的很快,有时候,它需要永远.我不是一个有耐心的人,如果Foo要永远持续下去,我想停止执行Foo,而不是用这些论据来表达. 以受控的方式调用Foo(我当前的环境是POSIX / C)是最好的方
目前我在单线程应用程序中从别人的库中运行函数Foo.大多数时候,我打电话给Foo,这真的很快,有时候,它需要永远.我不是一个有耐心的人,如果Foo要永远持续下去,我想停止执行Foo,而不是用这些论据来表达.
以受控的方式调用Foo(我当前的环境是POSIX / C)是最好的方法,这样我可以在一定秒钟后停止执行.我觉得在这里做的正确的事情是创建一个第二个线程来调用Foo,而在我的主线程中,我创建一个定时器函数,最终会在第二个线程耗尽时间时发出信号. 还有另一个更适合的模型(和解决方案)?如果不是,Boost的Signals2图书馆和线程会做的诀窍? 解决方法
您可以在超时的第二个线程上调用Foo.例如:
#include <boost/date_time.hpp> #include <boost/thread/thread.hpp> boost::posix_time::time_duration timeout = boost::posix_time::milliseconds(500); boost::thread thrd(&Foo); if (thrd.timed_join(timeout)) { //finished } else { //Not finished; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- heroku,postgreSQL,django,comments,tastypie:没有操作符匹
- 简单看看这两个类 String和StringBuilder
- 如何在Oracle中查找锁定的行
- 针对strings.xml的Android Serbian拉丁语和黑山值文件夹
- H3C路由器登录策略专题讲解
- 学习笔记_正则表达_02
- c# – 如何访问Windows 8.1存储区内Hubsection Datatemplat
- How to build a nice Hamburger Button transition in Swif
- Oracle 大数据量查询优化
- c 11 – 使用const-correctness实现可变参数zip函数