我需要在超时中包装一个函数,在 C++ 中使用 ACE。 该函数正在等待操作系统的响应,有时不返回。
我不能修改这个函数,所以我不能直接把中止条件放进去。我必须在外部为函数添加超时。
我在 boost 中看到了类似的问题 - C++: How to implement a timeout for an arbitrary function call?
但是,我正在使用 ACE。
最佳答案
将函数放在一个单独的线程中。如果线程在超时时间内没有退出,则将其分离并让它在后台运行完成,而不会从中获取任何结果。
请注意,如果函数有副作用(如写入文件),这将不起作用。
关于c++ - ACE C++ - 如何实现函数调用超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22982084/