我的情况如下:

int funcA()
{
   /*There will call  funcB*/
   funcB();
}


funcB()可能持续很长时间。如果我发现它已经运行了5分钟以上,我想中止funcB()并继续执行其他操作。

我怎样才能做到这一点?

最佳答案

执行此操作的一种方法是测量自进入后funcB()内经过的时间,例如如果funcB()中有循环。理想情况下,您的函数返回一个指示成功或提前终止的值,因此funcA()可以知道funcB()是否完成。

另一种方法是在自己的线程中运行funcB()。如果您的主线程确定已过去5分钟,则它可以终止正在执行funcB()的线程。

关于c - 如何在C中退出长期运行的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14179045/

10-10 21:25