【发布时间】:2010-11-04 04:03:47
【问题描述】:
我目前正在单线程应用程序中从其他人的库中运行函数 Foo。大多数时候,我打电话给 Foo,它真的很快,有时,我打电话给 Foo,它需要很长时间。我不是一个有耐心的人,如果 Foo 要永远占用,我想停止执行 Foo 并且不使用这些参数调用它。
以受控方式调用 Foo 的最佳方法是什么(我当前的环境是 POSIX/C++),这样我可以在一定秒数后停止执行。我觉得在这里做的正确的事情是创建第二个线程来调用 Foo,而在我的主线程中我创建了一个计时器函数,如果第二个线程超时,它最终会发出信号。
还有其他更合适的模型(和解决方案)吗?如果没有,Boost 的 Signals2 库和 Threads 能解决问题吗?
【问题讨论】:
标签: c++ boost-thread boost-signals watchdog