当创建窗口的线程和UpdateData调用所在的线程不是同一线程的时候MFC就会出错。因为MFC把部分信息储存在线程的TLS中,这些信息对于MFC的执行非常重要,因此MFC会在很多代码里面检查线程状态是否正确。所以这里不能用UpdateData。
解决方法:可以向主线程发送自定义消息,然后在这个自定义消息中调用UpdateData。或者使用其他方法来手动的修改数据,比如调用SetWindowText来改变窗口标题而不是用一个string然后Update等等,具体实现很灵活。推荐使用前一种方法。