MFC直接在子线程中更新编辑框的文本,有什么影响吗?
2个回答
展开全部
这个情况不太好说,因为存在潜在的不安全因素。
我建议你如果方便的话最好对界面控件的更新操作全部放在该界面类中进行。在其他地方,比如其他线程中可以提交更改。
比方说有一个窗体类是CTestDlg。
你可以在CTestDlg中创建一个自定义消息队列,然后在主体消息循环中来处理这个队列。
其他线程如果想控制CTestDlg中的某个控件,可以调用自定义的方法将“更改”这个操作提交到队列里。
然后CTestDlg在主消息循环中将会处理该请求。
当然,如果在主体消息循环中植入临界区,并且临界区保护你所要操作的文本框,那么也可以直接在其他线程中进行更改。
我建议你如果方便的话最好对界面控件的更新操作全部放在该界面类中进行。在其他地方,比如其他线程中可以提交更改。
比方说有一个窗体类是CTestDlg。
你可以在CTestDlg中创建一个自定义消息队列,然后在主体消息循环中来处理这个队列。
其他线程如果想控制CTestDlg中的某个控件,可以调用自定义的方法将“更改”这个操作提交到队列里。
然后CTestDlg在主消息循环中将会处理该请求。
当然,如果在主体消息循环中植入临界区,并且临界区保护你所要操作的文本框,那么也可以直接在其他线程中进行更改。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询