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

多线程的有关问题

2012-02-27 
多线程的问题主程序中:com_threadnewComThread(false)建立了另一个线程,主程序中有个Memo,子线程中有个

多线程的问题
主程序中:com_thread   =new   ComThread(   false   );建立了另一个线程,
主程序中有个Memo,子线程中有个死循环通过主程序Memo的一个全局变量不断的向Memo中添加字符串,主程序中有个按钮是来控制Memo中显示的是字符串还是HEX,我的做法是在按钮被按下时去改变现有内容,子线程中通过一个全局变量能得知要添加的形式,这样子如果正常操作是没问题的,但如果快速按按钮在"字符串"和"HEX"之间切换时显示就会乱了,我分析可能是主程序和子线程同时访问Memo造成的,看过线程方面的例子,要注意保护和同步,我也用了TCriticalSection和TEvent,但都容易死机,可能我用的方法不对,还有懂的朋友指点一下.

[解决办法]
可以使用消息, 不过我以前实验过,线程向主窗口发送消息是可以的,但是,PostThreadMessage 很难成功,不知道我试的对不对
[解决办法]
用自定义的Windows消息来做跨线程调用
[解决办法]
Synchronize()同步一下?不知道这个同步会不会起作用,楼主可以试一下。
用postMessage的话会不会有延时啊。

热点排行