我想在线程启动 20 秒后打开计时器。我如何在不阻止执行的情况下执行此操作。
所以我的线程入口函数是ThreadInAction。在从 ThreadInAction 启动计时器之前,我想等待 20 秒,但我不想使用 sleep 或其他方式阻止此线程。 我们如何做到这一点?
void* ThreadInAction()
{
//code
}
最佳答案
您可以像下面这样为 SIGALRM 注册一个信号处理程序。
sigaction(SIGALRM,struct_sigaction,NULL)
struct_sigaction
有一个成员 sa_handler
,它将指向您的信号处理函数。
现在使用 setitimer
创建定时器。将计时器设置为 20 秒。
关于c++ - 在启动另一个计时器之前等待 20 秒的非阻塞计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208417/