Цитата:
Сообщение от lmikle
1. А что мешает завести еще один поток, который будет заниматься этим? Один на все скачки, если их много.
|
ну так-то - да
![Смущение](images/smilies/redface.gif)
Кстати, у меня подозрение, что таймер как раз и работает в отдельном потоке, с другой стороны кажется - это плохой вариант, правда пока не пойму почему.
Цитата:
Сообщение от lmikle
...размер всего файла. Соответственно, можешь аллоцировать место (записать нули в TFileStream в нужном кол-ве).
|
Вот это вот -
Код:
fs.Size:={.Response.ContentLength};
это то что нужно? или требуются еще какие то телодвижения?
Цитата:
Сообщение от lmikle
часть файла, скачанная в TMemoryStream - ты всегда знаешь с какой позиции надо писать, а длинна - размер TMemoryStream.
|
Я вроде так и сделал
Код:
CntLock.Enter;
Strim.Position:=S;
Strim.CopyFrom(Buf,Buf.Size);
CntLock.Leave;
Все-таки смущает:
Код:
type
TDLoad = class(TThread)
private
Strim: TFileStream;
..............................
Код:
procedure TForm1.Button2Click(Sender: TObject);
...................
begin
fs:= TFileStream.Create('D:\cashe\001.mp4',fmCreate);
...................
for i:= 0 to {кол-во частей} do
begin
dl:= TDLoad.Create(True);
.....................
dl.Strim:= fs;.
end;
end;