Multithreading 响应moveToThread会发出什么信号?
我正在尝试在中使用QThread 出于性能原因,我希望保持线程运行,并将工作块推到线程上Multithreading 响应moveToThread会发出什么信号?,multithreading,qt,qthread,Multithreading,Qt,Qthread,我正在尝试在中使用QThread 出于性能原因,我希望保持线程运行,并将工作块推到线程上 线程开始时会发出started信号,但是当QObject移动到线程时会发出什么信号,以便它可以在新线程中开始执行工作?没有这样的信号。调用moveToThread后,可以使用调用其他线程中的函数(假设线程已经启动) 在我上面链接的文档中,有一个很好的例子可以使用它: QMetaObject::invokeMethod(thread, "quit", Qt:
线程开始时会发出started信号,但是当QObject移动到线程时会发出什么信号,以便它可以在新线程中开始执行工作?没有这样的信号。调用
moveToThread
后,可以使用调用其他线程中的函数(假设线程已经启动)
在我上面链接的文档中,有一个很好的例子可以使用它:
QMetaObject::invokeMethod(thread, "quit",
Qt::QueuedConnection);
您还可以为希望移动到另一个线程的类创建一个函数,调用moveToThread
,并在此函数中发出您自己的信号:
void MyClass::myMoveToThreadFunction(QThread *thread)
{
moveToThread(thread);
emit threadChanged();
}
这就是
QtConcurrent::run
的用途。根本不需要QObject
。