Qt:子线程在程序退出时的操作
在Qt中可以使用线程指针对子线程进行操作。子线程可以使用使用基本指针,shared_ptr,两种指针进行操作(QSharedPointer指针操作有问题还未解决,先不讲)。
// c++标准库
shared_ptr<QThread> thread_;// 基本指针
QThread* thread_;// Qt智能指针。
// QSharedPointer<QThread> thread_;
绑定信号槽,智能指针调用方法get获取基本指针。
connect(exit_action_,&QAction::triggered,handler_.get(),&Main_window_handler::signal_exit_application);
启动子线程:
// c++标准智能指针。thread_ = make_shared<QThread>();handler_ = make_shared<Main_window_handler>();
// handler_->moveToThread(thread_.get());
// thread_->start();// 基本指针。thread_ = new QThread();handler_->moveToThread(thread_);thread_->start();
在析构方法中释放子线程资源:
// 基本指针资源释放。if (nullptr != thread_) {thread_->quit();thread_->wait();delete thread_;thread_ = nullptr;}// 释放c++标准智能指针shared_ptr。
// while (thread_->isRunning()) {
// thread_->quit();
// thread_->wait();
// }