Qt:如何使用超时执行函数

时间:2013-11-22 08:53:50

标签: multithreading qt

在Qt中,使用特定超时执行函数的最简单方法是什么。(最好是在不同的线程中)

如果在特定时间内未返回该函数,则应返回错误。

2 个答案:

答案 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 */
}