我在C++方面并不是很好,实际上我在这方面是新手,还有很多东西要学。
在这种情况下,调用一个函数,有时需要数千秒才能完成,但什么也不返回。
有没有一种方法可以在我达到某个时间后暂停退出该函数,比如说。。。5秒
编辑:*我也在使用qt
假设您能够修改函数,它相当简单;只需让函数声明一个QElapsedTimer对象,并定期检查它;"太多";时间已经过去:
void MyFunctionThatShouldntTakeMoreThanFiveSeconds()
{
QElapsedTimer timer;
timer.start();
while(1)
{
if (timer.hasExpired(5000))
{
printf("Time's up! Returning nown");
return;
}
// do other stuff that the function does
}
}
如果你不能修改函数OTOH,你就倒霉了——你几乎无法单方面影响它的行为。(正如@user4581301所建议的,您可以生成一个子进程并在该子进程中运行该函数,然后在5秒钟后杀死该子进程,但这可能比合理的开销和复杂性更大(