RedFern.89
22.01.2010, 11:31
все вроде бы получилось. Делал так:
type TApiGetHTTP = class(TTharead)
....
var
HTTP : array of TApiGetHTTP;
var
ContentLength: Int64;
Offset, Chunk : Int64;
RangeBegin, RangeEnd : Int64;
PartCount : Cardinal;
I : Integer;
begin
ContentLength := GetUrlFileSize(AURL);
PartCount := 5;
Chunk := ContentLength div PartCount;
Offset := 0;
For I := 0 To PartCount -1 do
begin
SetLength(http, i+1);
RangeBegin := Offset;
RangeEnd := Offset + Chunk;
Offset := Offset + Chunk +1;
HTTP[I] := TApiGetHTTP.Create(True);
HTTP[i].Suspend;
HTTP[i].RangeBegin := IntToStr(RangeBegin);
HTTP[i].RangeEnd := IntToStr(RangeEnd);
end;
For I := 0 To Length(http) -1 do HTTP[i].Resume;
все работает прекрасно но 1 баг! Следующий поток не начнется, пока не завершит работу другой! в чем же дело? что я делаю не так? спасибо заранее..
type TApiGetHTTP = class(TTharead)
....
var
HTTP : array of TApiGetHTTP;
var
ContentLength: Int64;
Offset, Chunk : Int64;
RangeBegin, RangeEnd : Int64;
PartCount : Cardinal;
I : Integer;
begin
ContentLength := GetUrlFileSize(AURL);
PartCount := 5;
Chunk := ContentLength div PartCount;
Offset := 0;
For I := 0 To PartCount -1 do
begin
SetLength(http, i+1);
RangeBegin := Offset;
RangeEnd := Offset + Chunk;
Offset := Offset + Chunk +1;
HTTP[I] := TApiGetHTTP.Create(True);
HTTP[i].Suspend;
HTTP[i].RangeBegin := IntToStr(RangeBegin);
HTTP[i].RangeEnd := IntToStr(RangeEnd);
end;
For I := 0 To Length(http) -1 do HTTP[i].Resume;
все работает прекрасно но 1 баг! Следующий поток не начнется, пока не завершит работу другой! в чем же дело? что я делаю не так? спасибо заранее..