我正在尝试使用 QtConcurrent::run() 方法运行一个类的函数。线程运行并完全按照它应该的方式运行。但是,当线程结束时,我在控制台中收到此错误消息:
QWaitCondition: Destroyed while threads are still waiting
它在 Linux 上运行良好,没有任何错误消息,但是当我关闭应用程序时,应用程序在 Windows 中崩溃
这是main函数的代码:
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
}