Qt:子线程在步伐退出时的操作

打印 上一主题 下一主题

主题 1739|帖子 1739|积分 5217

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在Qt中可以使用线程指针对子线程进行操作。子线程可以使用使用根本指针,shared_ptr,两种指针进行操作(QSharedPointer指针操作有问题还未办理,先不讲)。
  1. // c++标准库
  2. shared_ptr<QThread> thread_;
  3. // 基本指针
  4. QThread* thread_;
  5. // Qt智能指针。
  6. // QSharedPointer<QThread> thread_;
复制代码
绑定信号槽,智能指针调用方法get获取根本指针。
  1. connect(exit_action_,
  2.                                 &QAction::triggered,
  3.                                 handler_.get(),
  4.                                 &Main_window_handler::signal_exit_application);
复制代码
启动子线程:
  1.             // c++标准智能指针。
  2.         thread_ = make_shared<QThread>();
  3.                 handler_ = make_shared<Main_window_handler>();
  4. //                handler_->moveToThread(thread_.get());
  5. //                thread_->start();
  6.                
  7.         // 基本指针。
  8.                 thread_ = new QThread();
  9.                 handler_->moveToThread(thread_);
  10.                 thread_->start();
复制代码
在析构方法中开释子线程资源:
  1.                 // 基本指针资源释放。
  2.         if (nullptr != thread_) {
  3.                         thread_->quit();
  4.                         thread_->wait();
  5.                         delete thread_;
  6.                         thread_ = nullptr;
  7.                 }
  8.                 // 释放c++标准智能指针shared_ptr。
  9. //                while (thread_->isRunning()) {
  10. //                        thread_->quit();
  11. //                        thread_->wait();
  12. //                }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表