首页 > 技术文章 > MFC CDialog中控件跨线程访问失败

aishangxue 2014-02-21 19:30 原文

项目中对话框收集完信息要通过网络发送出去,发送之前需要对用户信息做一些格式化处理。索性直接开个线程,在新线程中处理所有的事情(包括取得信息+格式化信息+网络发送信息)。

过程中却发现新线程中GetDlgItem总是不能取得正确控件对象

解决方法:保证GetDlgItem和对话框创建在统一线程即可。

具体原因应该是MFC使用了TLS(线程局部存储)。具体有时间再详细看看吧。

推荐阅读