- 主题:其实 Qt 应该改进为双线程模型
Qt 渲染本身发生于 UI 线程。
当检测到用户点击、键盘事件的时候,传递到另外一个业务线程,用户的代码运行在这个业务线程里面。
如果业务线程里面设置了控件的属性值,再传递到 UI 线程处理,更新用户界面。
使用双线程的模型,才能保证用户界面足够顺滑对吧。
--
FROM 110.81.13.*
在 qpa 里面吗?
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: x11版本的就是双线程吧
--
FROM 112.47.122.*
这个跟我说的不一样。这个 QXcbConnection 是 QPA 里面的。在 QPA 之上,Qt 渲染的动作和业务逻辑是同一个线程,只要业务逻辑比较繁重,渲染就可能会被卡住。
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: 我记得xcb版本的就是有个QXcbConnection线程在一直跑啊
: 不知道是不是你说的意思
--
FROM 112.47.122.*
UI 线程是程序员代码参与的那一个。
再弄个渲染线程没错的啊。
【 在 xeagle (静下心来编程) 的大作中提到: 】
: 从名称来看, 新线程叫 rendering thread, 不是 UI 线程
--
FROM 124.72.118.*
这个一般是 GUI 线程处理的。
对于程序员,仍然只看到一个线程。
程序员只要通知 GUI 框架,比如我改变了复选框的状态,GUI 框架就在 GUI 线程修改状态,并且向渲染线程发送渲染命令。发送完,程序员可以立即做其它的计算,而不用等待 GUI 的更新。
【 在 hongdiao (hongdiao) 的大作中提到: 】
: 多少码农连多线程下具体哪些资源需要保护都没搞清楚。。。
--
FROM 124.72.118.*
GUI 的双线程一般都是我这种模型。还有浏览器的模型就更复杂了用的双进程模型。js 运行的进程和图形显示的进程都是不一样的。
【 在 xeagle (静下心来编程) 的大作中提到: 】
: 这个双线程感觉和你说的双线程不太一样
: 发自「今日水木 on iOS」
--
FROM 124.72.118.*