1

我正在尝试使用 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
}
4

0 回答 0