如何在X段时间后退出函数?C++



我在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秒钟后杀死该子进程,但这可能比合理的开销和复杂性更大(

最新更新