响应moveToThread发出什么信号?

时间:2014-06-06 13:09:05

标签: multithreading qt qthread

我正在尝试使用proper way中的QThread。

出于性能原因,我想保持线程运行并将工作块推送到它。

线程开始时会发出 started 信号,但是当QObject移动到线程时会发出什么信号,以便它可以开始在新线程中执行工作?

1 个答案:

答案 0 :(得分:2)

没有这样的信号。调用moveToThread后,您可以使用QMetaObject::invokeMethod在不同的线程中调用函数(假设线程已经启动)

如何在我上面链接的文档中使用它有一个很好的例子:

QMetaObject::invokeMethod(thread, "quit",
                          Qt::QueuedConnection);

您还可以为要移动到另一个线程的类创建一个函数,并在此函数中调用moveToThread并发出自己的信号:

void MyClass::myMoveToThreadFunction(QThread *thread)
{
   moveToThread(thread);
   emit threadChanged(); 
}