我的情况如下:
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/