我正在尝试使用QtConcurrent :: run()方法运行类的函数。线程运行并完全按照它应该做的。但是,当线程结束时,我在控制台中收到此错误消息:
QWaitCondition: Destroyed while threads are still waiting
它在Linux上运行正常,没有任何错误消息,但是当我关闭应用程序时应用程序在Windows中崩溃
这是主要功能的代码:
int main(int argc, char *argv[])
{
QtSingleApplication a(argc, argv);
if(a.isRunning()&&argc==2)
{
a.sendMessage(argv[1]);
return 0;
}
else if (a.isRunning())
{
return 0;
}
testApp w;
testApp.show();
a.setQuitOnLastWindowClosed(false);
if(argc==2)
{
w.showDialog(argv[1]);
}
QObject::connect(&a, SIGNAL(messageReceived(const QString&)),
&w, SLOT(showDialog(QString)));
return a.exec();
}
修改
void MyClass::ready()
{
QtConcurrent::run (this,&MyClass::start);
}
void MyClass::start()
{
// do something
}