找回密码
 FreeOZ用户注册
查看: 1813|回复: 3
打印 上一主题 下一主题

[论坛技术] 问一个QT的model/view 问题

[复制链接]
跳转到指定楼层
1#
发表于 15-10-2010 16:23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
GUI在一个线程,另外有个线程做通讯,两个线程都要修改GUI的model。 为了同步,我想到几个方法:
1. 通讯线程将修改signal到主GUI线程,由主线程修改,model在主线程中。
2. 在QAbstractitemModel子类中的insert/Delete/RemoveRows()中加mutex, 然后两个线程各自修改,model在主线程,次线程就是修改主线程中的 model。
3. 只用一个GUI线程,network也在一起。
请问一下coredump,该用哪个,或者有更好的方法呢? 谢谢。

[ 本帖最后由 GPS 于 15-10-2010 16:45 编辑 ]
回复  

使用道具 举报

2#
发表于 15-10-2010 18:16:01 | 只看该作者
菜鸟进来围观技术贴。
就俺的认知能力来看,最好是在一个线程里修改。mutex看着挺炫,能不用就不用。

评分

参与人数 1威望 +10 收起 理由
GPS + 10 谢谢分享!

查看全部评分

回复  

使用道具 举报

3#
发表于 15-10-2010 21:31:21 | 只看该作者
I choose option 3.  only use worker thread until you have to.
Then choose option 1.
Choose option 2 only when option 1 & 3 won't work for your case.
回复  

使用道具 举报

4#
 楼主| 发表于 15-10-2010 22:55:18 | 只看该作者
多谢多谢。
因为在Qt里,利用signal-slot,多线程变得很容易了,导致老是想趋向于把不同的工作放在不同线程,结果反而是增加复杂度了。
多谢楼上两位。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 1-11-2024 18:19 , Processed in 0.028563 second(s), 20 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表