Delphi 7 使用http get请求终止的线程终止 我在线程中有这个代码,当我调用终止时,如果它不在HTTP请求的中间,那么它终止得很快,但是当我有20个线程时,需要时间来完成HTTP请求并退出线程。 代码:

Delphi 7 使用http get请求终止的线程终止 我在线程中有这个代码,当我调用终止时,如果它不在HTTP请求的中间,那么它终止得很快,但是当我有20个线程时,需要时间来完成HTTP请求并退出线程。 代码:,delphi-7,Delphi 7,谢谢 编辑:终止代码: for i:=Low(fparser) to High(fparser) do begin Fparser[i].Terminate(); end; 调用THttpSend.Abort()方法停止正在进行的传输。您可以在THttpSend.OnStatus事件中执行此操作,例如: procedure TParser.Execute; var ... begin http := THttpSend.Create; http.OnSta

谢谢

编辑:终止代码:

for i:=Low(fparser) to High(fparser) do
    begin
    Fparser[i].Terminate();

    end;

调用
THttpSend.Abort()
方法停止正在进行的传输。您可以在
THttpSend.OnStatus
事件中执行此操作,例如:

procedure TParser.Execute;
var
  ...
begin
  http := THttpSend.Create;
  http.OnStatus := HttpStatus;
  ...
end;

procedure TParser.HttpStatus(Sender: TObject; Reason: THookSocketReason; const Value: String);
begin
  if Terminated then Http.Abort;
end;

尝试了这个方法,并声明了一些过程,比如在这里,现在我得到了[Error]Unit5.pas(115):不兼容的类型:“blcksock.THookSocketReason”和“Unit5.THookSocketReason”。我是否应该在使用列表中申报更多单位。谢谢。编辑:添加blcksock到uses中,它可以工作。ThanksUnit5不应该声明自己的
THookSocketReason
类型,而是使用
blcksock
unt中的类型,这样就不会出现歧义错误。
for i:=Low(fparser) to High(fparser) do
    begin
    Fparser[i].Terminate();

    end;
procedure TParser.Execute;
var
  ...
begin
  http := THttpSend.Create;
  http.OnStatus := HttpStatus;
  ...
end;

procedure TParser.HttpStatus(Sender: TObject; Reason: THookSocketReason; const Value: String);
begin
  if Terminated then Http.Abort;
end;