ssso2004 发表于 2012-12-24 23:32:31

问大家一个MFC的问题。谢谢!(标题不合格,ID被封锁)

在工程中有一个DLG类负责界面的显示,另外有一个PROCESS类负责数据的处理。
怎么把处理的结果显示到界面上去呢。
是把处理后的数据返回到DLG类去显示,还是直接可以在PROCESS类中处理显示呢,谢谢!

xivisi 发表于 2012-12-25 09:01:08

mfc的dlg不是线程安全的,工作线程和界面线程 需要线程同步机制

t3486784401 发表于 2012-12-25 09:39:08

既然DLG都已经是负责显示的了,那肯定是交给DLG显示比较稳妥。

楼上说的很有道理,如果两个类位于不同线程,需要同步(打包发消息即可);
如果位于同一个线程,可以发消息也可以调用(当然前提是DLG开放了相关调用接口)。

leo.lei 发表于 2012-12-25 09:50:43

你这是两个类,不是两个线程的话在那都可以,但是业务逻辑层和界面层最好要分离,也就是说显示相关的最好都交给dlg,数据处理中不要包含UI相关操作。另外如果数据处理过程比较慢的话应该放到独立的线程中,这样可以防止主线程被阻塞(直接表象就是UI假死无反应)。

armok 发表于 2012-12-25 11:22:28

页: [1]
查看完整版本: 问大家一个MFC的问题。谢谢!(标题不合格,ID被封锁)