为什么QThread没有运行?

时间:2015-07-25 18:22:30

标签: qt qthread

我正在使用线程开发一个使用Qt的应用程序。启动应用程序我启动了一个线程来完成一些工作,将需要完成工作的对象移动到这样的线程

QThread aThread;
CsvLoader csvLoader;
connect(&aThread, SIGNAL(started()), &csvLoader, SLOT(compute()));
csvLoader.moveToThread(aThread);
aThread.start();

在应用程序开始时工作正常。现在,我在UI中有一个按钮,基本上我想要做的就是从compute()重新运行csvLoader方法,只需执行

aThread.start();

然而,第二次使线程运行的调用并不是调用连接到started()信号的插槽。

关于我可以检查什么或者我可能缺少什么的任何想法?

1 个答案:

答案 0 :(得分:1)

start()的第二次调用将无效QThread已启动。

您需要做的是将您的广告位compute()连接到您将从onClicked()广告位(或其拥有的任何名称)发出的信号。或者直接将其连接到按钮信号clicked()。 请注意,您可以同时将多个插槽连接到同一信号。