试试x秒,然后离开?

时间:2011-09-06 09:55:23

标签: c++

是否有可能用C ++编写try,catch语句与定时器一样,如果函数无法执行(它被卡住)程序只是继续?

3 个答案:

答案 0 :(得分:3)

是的,您可以使用Boost.Thread

执行此操作

特别注意timed_join功能。

答案 1 :(得分:0)

最强大的方法是在子进程中执行工作,等待子进程超时,然后终止它。

答案 2 :(得分:0)

KISS:

clock_t start = clock();
const int max_try_clocks = 5 * CLOCKS_PER_SEC; // 5 is the number of seconds 
                                               // we should keep trying for
try_again:
  try {
    // whatever you need to try
  } catch (...) {
    if (clock() - start < max_try_clocks)
      goto try_again;
  }