开发者社区 问答 正文

qt qthread为什么没有释放掉?

我在程序中定义了一个类,例如类person

class person: public QObject
{
  Q_OBJECT
  public:
  person()
  {
    thread=new QThread(this);
   this.moveToThread(thread);
    thread.setObjectName("hello");
    thread.start();
  }
  ~person()
  {
  }
  private:
  QThread *thread;
}

我想是person的槽函数都在新thread中相应,也达到了我的效果,但是当我delete这个person对象的时候,然后再new另外一个person对象,当我用top p PID中查看创建的线程的时候发现创建了两个Hello,我能保证我程序中始终存在一个person对象,那么为什么会出现两个叫做hello的线程呢??? 求解释

展开
收起
a123456678 2016-06-15 11:15:12 2433 分享 版权
1 条回答
写回答
取消 提交回答
  • 试试看在析构函数里写上:

    thread->quit();
    thread->wait();
    2019-07-17 19:38:56
    赞同 展开评论
问答标签:
问答地址: