[转]moveToThread
来源:互联网 发布:手机淘宝如何上传视频 编辑:程序博客网 时间:2024/05/29 11:14
QThread多线程编程经典案例分析(三种方法,解释了为什么使用moveToThread的根本原因,即为了避免调用QThread::exec() )
方法(3):
在Qt4.3(包括)之前,run 是虚函数,必须子类化QThread来实现run函数。而从Qt4.4开始,qthreads-no-longer-abstract ,run 默认调用 QThread::exec() 。这样一来不需要子类化 QThread 了,只需要子类化一个 QObject 就够了,这正是被 Bradley T. Hughes推荐的方法。
方法如下
QThread thread; Object obj; Dummy dummy; obj.moveToThread(&thread); QObject::connect(&dummy, SIGNAL(sig()), &obj, SLOT(slot())); thread.start();
结果:恩,slot确实不在主线程中运行(这么简单不值得欢呼么?)
main thread: 0x1a5c from thread slot: 0x186c
moveToThread的最简单用法(依葫芦画瓢即可)
在编译程序的时候遇到此误,在google上查,很多地方都说是因为虚基类里面的虚拟析构函数没有提供实现导致的。但是我的已经提供了实现,也不行。最后发现是其他没有提供实现的虚函数造成的。所以,在一个虚基类里,如果不提供函数的缺省实现,一定要定义成纯虚函数,否则就会造成此问题。
阅读全文
0 0
- [转]moveToThread
- moveToThread()
- Qt moveToThread
- Qt moveToThread
- Qt moveToThread
- [转] “QObject调用moveToThread()后 该如何释放”及QThread 的启动关闭
- qt thread with movetothread
- 在Qt使用moveToThread()
- Qt moveToThread使用说明
- Qt 线程 ---movetothread
- Qt 多线程之MoveToThread()
- 【Qt】QThread::moveToThread
- QThread with movetothread
- QObject::moveToThread() 打开相机
- 线程使用方法之moveToThread
- Qt线程之moveToThread
- 基于moveToThread的多线程
- 理解QT线程中的moveToThread
- Bootstrap之使用面板
- 使用ffmpeg的lib库解码H264/H265
- 用feof()判断文件时出现多读内容的问题
- ES6解构和扩展运算符
- 基于Nginx的负载均衡网站架构
- [转]moveToThread
- Java学习中,对登陆的总结。
- (转载)maven搭建ssm分模块框架 (myeclipse版) (二) 较详细版
- JNI开发
- 通过acpi_device_hid 得到device的HID
- BZOJ 4140: 共点圆加强版 [二进制分组]
- Java:接口与抽象类
- Mathematica SPWM
- Qt namespace Ui 使用