QThread:在单线程程序中“在线程仍在运行时被销毁”

时间:2016-09-05 06:44:05

标签: c++ qt qthread qapplication

int main(int argc, char** argv) 
{
   QApplicaiton app(argc, argv);

   // parsing other arguments of argc,argv

   return app.exec();
}

我的问题如下: 在解析其他参数期间可能会返回函数(不会到达app.exec()),并且当QApplication对象被删除时,我收到以下错误消息QThread: Destroyed while thread is still running。作为一种可能的解决方案,我试图在参数解析完成后创建QApplication。

我在return语句之前尝试了app.thread()->quit();,但它没有帮助。

创建QApplication对象时,它会从argc,argv中删除特定参数(-style等)。

是否可以手动从argc,argv获取它们而不创建QApplication对象?

奇怪的是,在单线程程序中,我收到QThread: Destroyed while thread is still running错误。

到目前为止,我发现的最佳“解决方案”是动态创建QApplication而不是删除它。内存泄漏不是问题,因为它在程序退出之前就已泄露。

0 个答案:

没有答案