GPS 发表于 15-10-2010 16:23:48

问一个QT的model/view 问题

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 编辑 ]

catchmeifucan 发表于 15-10-2010 18:16:01

菜鸟进来围观技术贴。
就俺的认知能力来看,最好是在一个线程里修改。mutex看着挺炫,能不用就不用。

coredump 发表于 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.

GPS 发表于 15-10-2010 22:55:18

多谢多谢。
因为在Qt里,利用signal-slot,多线程变得很容易了,导致老是想趋向于把不同的工作放在不同线程,结果反而是增加复杂度了。
多谢楼上两位。
页: [1]
查看完整版本: 问一个QT的model/view 问题