QTimer的一个莫名错误

该错误很莫名奇妙,暂时也不知道为什么会出错。

是这样的,我自定义了一个QThread,在run函数中会循环打开一个资源,这个资源会出现打不开的情况,所以如果打开失败,就需要等待一段时间再次去打开。因为中间有可能手动终端等待,手动触发再次尝试打开资源,所以没有直接使用msleep,搞的比较复杂。

我定义了一个QTimer,定义了一个QWaitCondition。QTimer设置为setSingleShot(true),然后在其槽函数中唤醒QWaitCondition。在run函数中打开资源失败就设置QTimer.start。然后进入QWaitCondition.wait。等待定时器的槽函数将其唤醒。

这里问题是,原来再次尝试打开资源间隔时间比较长60s。后来改成1s后就会出现QTimer.start或QWaitCondition.wait处就会出现错误。导致QTimer被耗尽。

posted @ 2024-07-17 22:40  远桥  阅读(60)  评论(0)    收藏  举报