(转)UpdateData在线程中出错的解决办法

UpdateData在线程中出错的解决办法

2009年12月3日 虚幻 发表评论 阅读评论

最近在写一个监视程序,需要定时查看共享内存中的各个值。于是在MFC中,首先开了一个线程,用的是boost的timer,每隔1秒读取共享内存中的值,另外一个线程通过调用UpdateData(FALSE)将值显示在界面上。但是在我调试的时候发现,UpdateData一直报错。

 

最后查了下,还是线程的问题,在线程中,不能直接用UpdateData来更新数值。解决的办法,应该自己定义一个消息,将UpdateData(FALSE)替换为SendMessage(WM_UPDATEDATA, FALSE)就可以了。具体的做法如下:

首先,定义消息和回调函数

加入函数映射

 

最后,实现回调函数

 

转自:http://www.sizeof.cn/html/2009/263.html   支持原创!

posted @ 2010-08-09 21:39  JarvisChu  阅读(349)  评论(0)    收藏  举报