我在 计算器 里注入了一个dll,在dll里创建了一个线程,什么都不做,只是循环常驻var
test: tstringlist;
begin
test := tstringlist.create;
// 线程开始
while true do
begin
sleep(100);
end;
// 线程结束
test.free;
end;我想在 计算器 退出时释放这个线程
在dll的DLL_PROCESS_DETACH中做处理,但是经过调试发现计算器退出后所有线程都立即结束了,不会执行后面的test.free
这样就造成了内存泄漏不知道有人碰到过这个问题没,怎么解决?
test: tstringlist;
begin
test := tstringlist.create;
// 线程开始
while true do
begin
sleep(100);
end;
// 线程结束
test.free;
end;我想在 计算器 退出时释放这个线程
在dll的DLL_PROCESS_DETACH中做处理,但是经过调试发现计算器退出后所有线程都立即结束了,不会执行后面的test.free
这样就造成了内存泄漏不知道有人碰到过这个问题没,怎么解决?
解决方案 »
- delphi 开发64位系统 需要MD5计算 怎么把原来32位的MD5转64位
- 数据库备份的奇怪问题 高手进
- 请问如何将string转换成PAnsiChar?
- 上帝,我只是想写个树,难道不行吗
- DELPHI7环境下SQL MONITOR为什么不起作用
- 有谁知道怎么将DVD格式的转换成AVI格式,告诉我哪里有控件可用也行
- 为什么啊,我最亲密的好友就这样离开了人世啊,苍天你没长眼睛啊!
- 怎么把label的值显示为20,000.00
- 请问如何在得到treeview中的最后一项?
- 有带checkbox的DBGRid吗? 重赏!
- 如何用Tchart控件中的Line曲线做到用一条曲线有折回效果?
- 救命啊,Delphi的乱码问题
TMyThread = class(TThread)
private
test: TStringList;
{ Private declarations }
protected
procedure Execute; override;
public
destructor Destroy; override;
end;implementation{ TOneThread }destructor TMyThread.Destroy;
begin
if assigned(test) then
freeandNil(test);
inherited;
end;