все вроде бы получилось. Делал так: Code: [b]type[/b] TApiGetHTTP = [b]class[/b](TTharead) .... [b]var[/b] HTTP : [b]array of[/b] TApiGetHTTP; [b]var[/b] ContentLength: Int64; Offset, Chunk : Int64; RangeBegin, RangeEnd : Int64; PartCount : Cardinal; I : Integer; [b]begin[/b] ContentLength := GetUrlFileSize(AURL); PartCount := 5; Chunk := ContentLength [b]div[/b] PartCount; Offset := 0; [b]For[/b] I := 0 [b]To[/b] PartCount -1 [b]do[/b] [b]begin[/b] 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); [b]end;[/b] [b]For[/b] I := 0 [b]To[/b] Length(http) -1 [b]do[/b] HTTP[i].Resume; все работает прекрасно но 1 баг! Следующий поток не начнется, пока не завершит работу другой! в чем же дело? что я делаю не так? спасибо заранее..
Попробуй так: Code: [b]type[/b] TApiGetHTTP = [b]class[/b](TTharead) .... [b]var[/b] HTTP : [b]array of[/b] TApiGetHTTP; [b]var[/b] ContentLength: Int64; Offset, Chunk : Int64; RangeBegin, RangeEnd : Int64; PartCount : Cardinal; I : Integer; [b]begin[/b] ContentLength := GetUrlFileSize(AURL); PartCount := 5; Chunk := ContentLength [b]div[/b] PartCount; Offset := 0; [b]For[/b] I := 0 [b]To[/b] PartCount -1 [b]do[/b] [b]begin[/b] 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); [b]end;[/b] [b]For[/b] I := 0 [b]To[/b] [b]PartCount - 1[/b] [b]do[/b] HTTP[i].Resume;