QT QThread 学习笔记
来源:互联网 发布:软件靠流量赚钱 编辑:程序博客网 时间:2024/05/21 19:30
今天学习了QThread的用法,也阅读了许多网上大家给的意见,以我现在的理解大致就有两点
一:创建一个类继承QThread类,需要实现的功能只需要重载QThread的run(),函数就可以了,调用的时候只需要调用创建类的start()函数,可是这时,笔者我便遇到了第一个问题,在之前用C,C++在控制台环境下开发的时候,创建两个线程,线程间的通信是一个非常简单的简单的过程,只需要创建一个全局的变量就可以了,可是在QT上使用QThread来创建线程,感觉线程间的通信就成了个问题,这时候便用到了自定义信号,在另外的线程中定义一个slot来接收发出的信号,这样便完成了线程间通信。
(可是在这里我又遇到了一个问题,我用一个类创建了两个线程对象,分别调用他们的start()函数,并没有达到多线程并行的效果,而是第二个线程函数等待第一个线程函数运行完成后再运行的)大致代码如下
class Fun : public QThread
{
void run(){ qDebug()<<"我是一个线程函数"; }
};
void mian()
{
Fun *fun = new Fun;
fun->start();
}
二:可以直接创建一个类,继承QObject,在主函数里面将这个类创建的对象的槽函数,与QThread创建的对象的start()信号connect()起来,之前要用
moveToThread();这样也可以大致代码如下
class Fun:public QObject
{
Q_OBJECT
public slots:
void show(){ qDebug()<<"我是一个线程函数的槽函数"; }
};
void main()
{
Fun *fun = new Fun;
QThread *thread = new QThread;
fun->moveToThread(thread);
connect(thread,SIGNAL(start()),fun,SLOT(show()));
thread->start();
}
阅读全文
0 0
- QT QThread 学习笔记
- QThread学习笔记
- QThread线程学习笔记
- QThread线程学习笔记
- 学习笔记之------------QThread使用方法。
- QT QThread
- Qt线程学习 一个QThread例子
- Qt下QThread用法学习之多线程
- [Qt学习篇]Qthread实现多线程操作
- QThread学习
- [QT] QThread 类详解
- qt线程类---QThread
- Qt线程QThread简析
- Qt线程(QThread)
- QT 5.0.2 QThread
- 【Qt】QThread::moveToThread
- QT qthread详解
- Qt之QThread详解
- 折半查找算法
- Linux 文件颜色
- Eclipse如何修改工程项目的名
- 【机器学习】Knn算法实现手写数字识别
- leetcode-92. Reverse Linked List II(将单链表部分进行转置)
- QT QThread 学习笔记
- 判断元素出栈、入栈顺序的合法性。如:入栈的序列( 1,2,3,4,5 ),出栈序列为 ( 4,5,3,2,1 )是合法序列,入栈的序列( 1,2,3,4,5 ),出栈序列为( 1,5,3,2,4 )是
- 剑指offer 面试题17 合并两个排序的链表-Java实现
- mysql 删除相同数据
- [php学习笔记3]对象、方法
- 变分自编码器数学原理小结
- Vue环境搭建
- 【脚本语言系列】关于Python网页服务Microsoft IIS,你需要知道的事
- java入门第一季-java开发环境搭建