在Qt中,使用特定超时执行函数的最简单方法是什么。(最好是在不同的线程中)
如果在特定时间内未返回该函数,则应返回错误。
答案 0 :(得分:0)
使用QTimer创建一次性计时器,当它触发时,通过将timeout()信号连接到另一个线程对象的插槽,将信号发送到另一个线程上的接收对象。
然后,将相同的计时器超时连接到当前线程中的一个插槽,以启动超时错误计时器。如果另一个线程返回,请停止错误计时器。
答案 1 :(得分:0)
静态方法QTimer::singleShot
可以在不创建QTimer
:
void MyClass::start() {
int timeout = 500; // msecs
QTimer::singleShot( timeout, this, SLOT(mySlot());
}
void MyClass::mySlot() {
/* Start your thread or whatever */
}