手头上有一产品,其中有几个功能是多线程,通过TThread来完成。多线程相关功能,会偶尔(概率很小)有指针错误、句柄错误等异常问题,因为没有找到确切出错的地方,我已经在程序很多地方加上了try...except等异常抛出的处理,尤其对一些free操作,比如tstringlist变量的free。不过好像功效不大。仍然会有相似问题产生。请各位有相关经验的朋友谈谈你们对多线程程序调试的经验,可能对我有启发,非常急切的等待您的回复!谢谢!
解决方案 »
- TNMUDP听诊端口已被占用时,它会改成新端口,如何立即得到此端口?
- 如何判断无类型指针pointer所指内容是何种类型数据,有关format 函数的使用
- 诸位大侠?哪位安装程序比较好、哪里有比较好的下载?谢谢
- 关于调用无模式窗体的问题,请指教?
- 使用dbgrid时的问题
- 打开文本的问题
- 如何解决D6升级到D7时中文乱码问题?
- 比如要查找一个字符 如福建省开头的,我只要在输入fj就可以出现所有以福建开头的,这要如何做?
- 有谁知道用adsl+sygate是怎样设置代理的。
- 有谁答我,关于ADO+Access的SQL语句问题!
- 找人合作开发ERP!
- Undeclared identifier,建议向我这样的初学者去看看~~
对全局变量、线程共用变量的使用要多加小心,可能需要用临界区来互斥。
对 VCL 组件的操作要注意,它们不是线程安全的。
先释放线程,再释放线程用到的全局变量、共享变量。
线程不可滥用。
-----
这种方法在普通程序中是可以的,但多线程就.....
不确定因素太多
我的意思就是定义一个
TCriticalSection的全局实例;
然后
TCriticalSection.Acquire();
try
dosomething
finally
TCriticalSection.releas
end;