C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时器线程吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我在单线程应用程序中从别人的库中运行函数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;
}

大佬总结

以上是大佬教程为你收集整理的我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时器线程吗?全部内容,希望文章能够帮你解决我可以在C中使用Boost Signals2和Threads创建一个软件看门狗定时器线程吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。