我想了很長時間在德爾福做一個「憤怒的http下載器」,但TIdHttpCli只是不能做我想做的。出於某種原因,它不會在許多線程中同時運行。請看看一個這個問題的簡單的例子:訪問衝突TIdHttp同時在多個線程上運行
procedure HttpRequest(AParam : Integer); stdcall;
var
lHttp: TIdHttp;
begin
lHttp := TIdHttp.Create(nil);
{
lHttp.Get(
'http://stackoverflow.com/questions/15977505/',
TMemoryStream.Create
);
}
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
tid: DWORD;
begin
for i := 0 to 4 do
CreateThread(nil, 0, @HttpRequest, nil, 0, tid);
end;
大衛·赫弗南編輯:我在簡化問題的代碼。該代碼仍然表現出這種行爲。我的測試環境是XE3,與XE3一起交付的Indy。
@PauloParedes - TThread,如David所建議的。 –