首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

MFC中跨线程操作控件会不会出现像C#中的错误有关问题

2012-03-26 
MFC中跨线程操作控件会不会出现像C#中的异常问题?在C#中不能直接在非UI线程中操作窗体上的控件,否则会抛出

MFC中跨线程操作控件会不会出现像C#中的异常问题?
在C#中不能直接在非UI线程中操作窗体上的控件,否则会抛出"跨线程操作控件"的异常,据了解这样设计是为了防止多线程同时操作控件而导致的不同步问题,所以在C#中子线程如果要操作控件必须通过delegate委托UI线程去完成操作控件的任务.
于是,我要问的是,在Win32程序设计和MFC程序中,子线程可以直接操作控件吗?如果可以的话,会不会发生上述描述的不同步问题?如何解决?一般的MFC程序设计采用的是何种控件操作策略?
刚从.NET转向MFC,很多问题都不会,请大家多指教,谢谢~_~

[解决办法]
可以的,我写过这样的程序,win32api CreateThread创建的线程可以操作GUI的控件,AfxGetApp()->GetMainWnd()得到窗口的句柄,然后就可以访问窗口的控件,往比如下来列表中插入数据。
[解决办法]
其实和 C# 的思路是一样的

可以发消息给UI线程的窗口,由窗口的消息响应函数进行处理

热点排行