但是,我已经在Onclose中加入了:
for i:=0 to MaxThreads-1 do begin
ThreadsObjects[i].Terminate;
ThreadsObjects[i].Resume;
end;
在线程的Execute中是:
while not terminated do begin
......
adoct.Connected:=false;
suspend;
adoct.Connected:=true;
end;
adoct.Connected :=false;
adoqt.free;
adoct.free;
for i:=0 to MaxThreads-1 do begin
ThreadsObjects[i].Terminate;
ThreadsObjects[i].Resume;
end;
在线程的Execute中是:
while not terminated do begin
......
adoct.Connected:=false;
suspend;
adoct.Connected:=true;
end;
adoct.Connected :=false;
adoqt.free;
adoct.free;
try
inherited create(suspended);
freeonterminate:=true;
threadid:=i;
adoct:=TADOConnection.Create(nil);
adoqt:=TADOQuery.create(nil);
adoct.ConnectionString:=form1.ADOC_main.ConnectionString;
adoct.LoginPrompt :=False;
adoct.Mode:=cmShareDenyNone;
adoct.Provider :=form1.ADOC_main.Provider;
adoqt.Connection :=adoct;
adoct.Connected :=true;
except
form1.M_send.Lines.Add('线程'+inttostr(i)+'创建失败!');
end;