不会吧,Thread被Destroy时,FreeOnTerminate就应该被调用,
是否Memproof误报
是否Memproof误报
解决方案 »
- TcxGrid中,DateEdit值为空的时候点下拉报错,哪位兄弟遇到过类似问题?
- idhttp post 问题
- 安装DELPHI7遇到的问题,请指点...
- 高分求教
- 有用过MSCOMM和SPCOMM的高手,怎么可让SPCOMM发送数字类型的数据,而不是字符Pchar类型,就像MSCOMM可按字符串的形式和字节数组中的二进制数
- 200分请大家坐坐,说说控制程序总体流程的经验。兼散分。
- 大家好,这里有上海的朋友吗?我想到上海去发展,大家帮我出出主意,谢谢!
- 请问这是什么视角的?
- 如何远地登陆数据库呢?就象QQ那样?
- 很有意思的问题!大家快来看啊!!!
- 初级问题,急急急
- delphi,foxpro,重新索引
FreeOnTerminate := True;
我并不显示的调用Free;而是由TThread类隐式调用,
但如果此线程正在执行,Free没有被调用.不知为何?
Thread.Terminate也并不是强制Thread结束, 只是把Thread.Terminated置为True而已.
如果你的线程是个while true do类型的, 设了FreeOnTerminate := True应该没有什么用
你可以在主程序结束时, 给线程发个信号, 等待线程的terminate后主程序再退出.
while true do 线程结束时,主程序不结束,FreeOnTerminate是有用的.
请看VCL中TThread的代码
destructor TThread.Destroy;
begin
if not FFinished and not Suspended then
begin
Terminate; //设置变量
WaitFor; // 等待宪成结束.
end;
if FHandle <> 0 then CloseHandle(FHandle);
inherited Destroy;
RemoveThread;
end;也就是主程序退出, 会等待Thread结束.但好像不是这样.
我用Memproof测试过Delphi自带的TThread的例子,在排序过程中关闭Form
有内存泄漏,等排序结束在关闭则没有泄漏.
建议你还是等等看吧
TLMDHiTimer会导致内存泄漏.(使用 Thread),
不只tiger有何建议 :)
,我就改了一大堆,谢谢 tiger
问题是没有解决.
我在提问.:)