この関数がプログラムをロックし、閉じるまでフリーズすることがあります。ここで何が問題になっていますか?
function del_from_list(id:string):boolean;
var i : integer;
begin
Result := True;
try
with global_list.LockList do
begin
for i:=0 to Count-1 do
begin
if Tthread_list(Items[i]).id = id then
begin
Delete(i);
break;
end;
end;
end;
finally
global_list.UnlockList;
end;
end;
クラス
Tthread_list = class
public
id : string;
constructor Create(const id: string);
end;
私はそのようにリストに追加しています:
global_list.Add(Tthread_list.Create('xxx'));
グローバルリストはグローバル変数です
var global_list : TThreadList = nil;