| 
| 
 | Вопрос # 6 245/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты! В своём приложении организовал многопоточную скачку файлов (в каждом потоке скачиваются разные файлы). + в потоках используется idHTTP. Всё работает. Но вот тут встал вопрос: - если сделать, допустим, обработчик у Idhttp onWork и присвоить его к IdHTTP, то разные потоки будут обращаться к нему и получается фигня. Т.е. как мне для каждого потока прикрутить свой onWork? Приложение:Переключить в обычный режим .....TNewThread = class(TThread)  private    procedure OnWork(Sender : TObject; AWorkMode : TWorkMode; const AWorkCount : Integer);  protected    procedure Execute; override;  public    constructor Create(CreateSuspended: Boolean);  end;.....implementation..... constructor TNewThread.Create(CreateSuspended: Boolean);begin  inherited Create(CreateSuspended);end; procedure TNewThread.Execute;var HTTP: TIdHTTP;    FileStream : TFileStream;    LoadedSz, AvLen, Itm: integer;    FilePath, URLLink: string;begin  LoadedSz:= 0;  AvLen:= 0;  FilePath:= '...;  URLLink:= '...';  HTTP := TIdHTTP.Create(nil);  HTTP.CookieManager:= Form1.IdCookieManager1;  HTTP.Head(URLLink);  if AvLen < HTTP.Response.ContentLength then    AvLen:= HTTP.Response.ContentLength;  if FileExists(FilePath) then    begin      LoadedSz:= FileSizes(FilePath);      FileStream := TFileStream.Create(FilePath, fmOpenReadWrite);      FileStream.Position := FileStream.Size;    end  else    begin      FileStream := TFileStream.Create(FilePath, fmCreate);    end;   HTTP.OnWork := OnWork;  HTTP.OnWorkBegin := OnWorkBegin;  HTTP.OnWorkEnd := OnWorkEnd;   HTTP.Request.ContentRangeStart := LoadedSz;  HTTP.Request.ContentRangeEnd := AvLen;  HTTP.HandleRedirects := True;  HTTP.AuthRetries:= 3;  HTTP.RedirectMaximum:= 15;  HTTP.ProtocolVersion:= pv1_1;  HTTP.AllowCookies:= True;  HTTP.RecvBufferSize:= 768;  HTTP.Request.Accept:= '*/*';  HTTP.SendBufferSize:= 32768;   try    HTTP.Get(URLLink, FileStream);  except  end;  HTTP.Free;  FileStream.Free;end;
|  |   Вопрос задал: eclipse (статус: Посетитель)Вопрос отправлен: 10 августа 2012, 11:07
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 10 августа 2012, 12:07; участников в обсуждении: 1. 
|   | eclipse (статус: Посетитель), 10 августа 2012, 12:07 [#1]:Всем спасибо за внимание! Разобрался. |  10 августа 2012, 12:07: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |