QT类学习系列(6)- Qt多线程的简单实现以及不能同时处理UI的操作
来源:互联网 发布:杭州创业软件 编辑:程序博客网 时间:2024/06/08 15:09
一:
Qt---多线程的简单实现 -大隐隐于市 - CSDN博客
http://blog.csdn.net/u012319493/article/details/51804244
二:
qt为什么只能在主线程里进行UI操作_百度知道
https://zhidao.baidu.com/question/139505057752132085.html
->
qt为什么只能在主线程里进行UI操作
的确是这样。主线程是唯一允许创建QApplication或者QCoreApplication对象的,并且调用exec()。exec()启动了事件循环,一直在等待接收并且处理一个个Qt封装好的事件,比如鼠标移动事件,键盘按下事件等等。所以只有在主线程里你才可以方便利用各种Event去完成自己想要实现的需求。所以就限制你必须在主线程作UI相关操作。
除了规定,往根源说,再多的线程,实质上对于CPU来说,也是一件一件的处理,并不是我们凭空现象的同时处理。只是可以“智能”的处理一下当前迫切需要的数据,然后可以随时暂停,再去处理更加迫切的。如果2个线程同时处理UI显示,一个线程正在用于和用户交互更新显示,另外一个线程就只能是等待状态,并不能完成我们所期望的同时刷新UI的期望。
所以,基本上大部分应用开发框架都限制更新、创建UI必须在主线程里完成,而逻辑运算可以匹出新线程去完成。
多线程,越方便越快捷也就越容易隐藏bug,多线程间数据同步很容易搞乱,互斥量、读写锁、信号、共享等等。想要多线程同步处理UI更新,你也要给伟大的框架开发程序员们一些时间呵呵……
qt为什么只能在主线程里进行UI操作?-CSDN论坛
http://bbs.csdn.net/topics/390155610/
------>
子线程,一般处理数据用的。
多线程同时对UI操作,基本上都不行吧,
在QT线程中new个UI表示该UI所属线程是new的那个,需要改变UI的线程所属后才能和其他UI使用事件循环,处理什么的。
对Qt而言,一个进程里和窗口系统(譬如Win32的GDI, linux下的X11)UI事件关联的只有主UI线程,而并没有设计成多线程和系统窗口系统同时交互(复杂性,安全性,性能等原因),这应该是根源。
- QT类学习系列(6)- Qt多线程的简单实现以及不能同时处理UI的操作
- Qt---多线程的简单实现
- Qt---多线程的简单实现
- Qt的多线程实现
- Qt多线程的实现
- QT多线程的学习
- QT操作WPS表格的简单实现
- Qt学习------简单的文件拖放操作
- Qt 中多线程的处理
- qt多线程的简单例子
- Qt 多线程的简单应用
- QT简单的多线程编程
- [Qt学习篇]Qthread实现多线程操作
- QT学习笔记(四) QtDesigner 实现简单的快捷键操作界面
- Qt实现完全按键控制Ui的简单框架
- QT:Qt中Ui名字空间以及setupUi函数的原理和实现
- [Qt]一个简单的Qt Widget多线程处理图像的例子
- Qt/C++ Qt多线程竟然不能使用VC的套路
- 知道这20个正则表达式,能让你少写1,000行代码
- ILSVRC2017:Beyond ImageNet Large Scale Visual Recognition Challenge
- how to share register and bit field definitions between a device driver and the FPGA it controls
- Java NIO系列教程(十一) Pipe
- 解决ubuntu 终端tab键无法命令补全的问题
- QT类学习系列(6)- Qt多线程的简单实现以及不能同时处理UI的操作
- UVA
- Mysql 问题
- RESTful---SpringMVC学习笔记(十三)
- 两行代码搞定底部菜单栏的实现
- 现在,中国的互联网公司该不该走出国门?
- Eclipse-安卓-Unable to resolve target 'android-25'
- Action 委托
- Mysql事务以及加锁机制事务的特征ACID