Qt中使用多线程
2016-02-17 09:44
309 查看
Qt官方文档中介绍,Qt中实现多线程有两种方式。
一种是类似Java中Thread类的方式,继承QThread,然后重载run函数,调用start函数可以开启线程,这种方式适合没有信号槽交互,像pthread一样的普通线程。
另一种是work-object方式,适合想要槽在新线程中执行的情况。用法很简单,代码如下:
QThread使用时报错:QThread: Destroyed
while thread is still running
这个是由于QThread析构时发现线程并没有退出和停止
解决办法:
在父窗口析构函数中加入一下几行
一种是类似Java中Thread类的方式,继承QThread,然后重载run函数,调用start函数可以开启线程,这种方式适合没有信号槽交互,像pthread一样的普通线程。
另一种是work-object方式,适合想要槽在新线程中执行的情况。用法很简单,代码如下:
QThread t; QObject o; o->movetothread(&t); connect(); t.start();
QThread使用时报错:QThread: Destroyed
while thread is still running
这个是由于QThread析构时发现线程并没有退出和停止
解决办法:
在父窗口析构函数中加入一下几行
monitorThread->quit(); if(!monitorThread->wait(3000)) { monitorThread->terminate(); monitorThread->wait(); }
相关文章推荐
- Qt添加icon图标(主要用于treeview或tableview的item前)
- Qt右击菜单栏实现
- QT设置窗口屏幕居中
- PyQt4入门教程(2)_PyQt4的第一个程序
- Qt QTextEdit根据行号移动光标
- 使用Qt设计师实现对话框
- Qt4 使用QJson库
- PyQt4入门教程(1)_PyQt介绍及准备工作
- Qt之设置窗口背景
- PyQt4入门教程(0)_译者说
- Qt 中定义单例对象
- Qt应用程序打包
- Qt环境搭建
- Qt颜色选择编辑demo
- 使用QT实现右击菜单实例
- QT 登陆界面设计
- QT自动下载网页每天更新的文件
- 用Qt实现一个桌面弹幕程序(三)--实现一个弹幕②
- qtdeclarative 源码略读
- PyQt5教程(十)——自定义控件