QtConcurrent :: run()导致QWaitCondition销毁消息

时间:2013-02-06 16:45:54

标签: windows multithreading qt

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

0 个答案:

没有答案