您的位置:首页 > 编程语言

关于多线程使用的问题

2005-08-31 02:37 531 查看
我有一个TThread类,然后类里面,私有成员指针TIdIcmpClient* ,在构造函数中,new了一个TIdIcmpClient对象出来。因为有十来个线程并发,然后发现,从TIdIcmpClient->ReplyStatus读出的信息,是其它线程的内容。感觉很奇怪,不知道TIdIcmpClient这个控件是不是多线程不安全的。如果不是,请问谁有过多线程使用TIdIcmpClient的经验,谢谢啊
VCL本身不内置多线程支持的。因此一般要使用TThread->Synchronize来处理。
大家好,我在编程时,由于处理工作量较大,所以采用多线程编程,用到vcl对象,故采用Synchronize来进行同步,可采用Synchronize方法后,线程的执行效率明显下降,这是怎么回事?该如何处理啊?
不要把大循环的代码放入 Synchronize 调用的过程,
应该只把那些需要修改VCL的代码出去出来过程一个过程,通过 Synchronize 方式调用
用Synchronize方法的执行 实际上是由主线程完成的,当然效率不高。
把某些界面的操作分离出来放到Synchronize里执行,其他的就不用管,我这样搞后cpu占用率就降到零了,真妙.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 编程 工作