以受控的方式调用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;}总结
以上是内存溢出为你收集整理的我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时器线程吗?全部内容,希望文章能够帮你解决我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时器线程吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)