[发明专利]一种QT线程优化方法、装置、计算机设备及存储介质在审
申请号: | 202211218168.0 | 申请日: | 2022-09-30 |
公开(公告)号: | CN115421708A | 公开(公告)日: | 2022-12-02 |
发明(设计)人: | 陈中文;徐林浩;姜树红;涂庆裕 | 申请(专利权)人: | 北斗星通智联科技有限责任公司 |
主分类号: | G06F8/34 | 分类号: | G06F8/34;G06F8/38 |
代理公司: | 深圳市精英专利事务所 44242 | 代理人: | 李燕娥 |
地址: | 401125 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 qt 线程 优化 方法 装置 计算机 设备 存储 介质 | ||
本发明实施例公开了一种QT线程优化方法、装置、计算机设备及存储介质。所述方法包括:调用Controller函数;利用所述Controller函数将信息添加到MessageQueue列队中,并发送信号;在Worker的槽函数中判断所述信息是否被移除;若否,则判断所述信息是否是延迟信息;若否,则调用Callback对所述信息进行处理;若是,则启动定时器;在TimerEvent函数中获取所述信息;判断所获取的信息是否被移除;若否,则执行所述调用Callback对所述信息进行处理。通过实施本发明实施例的方法可实现便于创建一个具有循环队列和异步共享的线程,具有使用简单,容易理解等特点。
技术领域
本发明涉及计算机,更具体地说是指一种QT线程优化方法、装置、计算机设备及存储介质。
背景技术
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。并且Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程;使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。
现有三种方法使用QT线程,第一种是定义类Thread继承QThread基类;重写run方法,在run方法中处理业务逻辑;创建Thread对象,调用start方法开启线程;第二种是定义类Runnable继承QRunnable基类;重写run方法,在run方法中处理业务逻辑;创建QRunnable对象放到QThreadPool中运行;第三种是定义类Worker继承QObject基类;在Worker中定义槽函数,槽函数运行在线程中,用于处理业务逻辑;定义类Controller继承QObject基类;在Controller中定义信号;在Controller类中创建Worker对象,创建QThread对象;将Controller对象的信号和Worker对象的槽函数绑定;调用Worker对象的moveToThread方法,将第五步创建的线程作为参数传入;发送Controller对象的信号。但是在界面应用发展很快的今天,QT作为跨平台软件开发框架,应用比较广泛。为了应用流畅运行,线程是必然选择,QT线程使用方法涉及信号槽、事件队列,子线程和父线程等概念,如果不是对QT线程有深刻理解,容易错误的使用线程。
因此,有必要设计一种新的方法,实现便于创建一个具有循环队列和异步共享的线程,具有使用简单,容易理解等特点。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种QT线程优化方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:一种QT线程优化方法,包括:
调用Controller函数;
利用所述Controller函数将信息添加到MessageQueue列队中,并发送信号;
在Worker的槽函数中判断所述信息是否被移除;
若所述信息未被移除,则判断所述信息是否是延迟信息;
若所述信息不是延迟信息,则调用Callback对所述信息进行处理;
若所述信息是延迟信息,则启动定时器;
在TimerEvent函数中获取所述信息;
判断所获取的信息是否被移除;
若所获取的信息未被移除,则执行所述调用Callback对所述信息进行处理。
其进一步技术方案为:所述调用Controller函数之前,还包括:
定义类CBack继承类Callback;
重写Callback函数处理信息;
创建Controller对象,创建CBack对象;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北斗星通智联科技有限责任公司,未经北斗星通智联科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211218168.0/2.html,转载请声明来源钻瓜专利网。