Подвисание приложения при выполнении THTTPSend.HTTPMethod
Добавлено: 06.07.2016 14:03:37
Есть приложение, которое в потоке запрашивает файлы с сервера (тайлы Яндекс карт). И все работает, но если в момент вызова HTTPMethod сервер не отдает файл (synsock.Connect отрабатывает с FLastError = 10060, т.е. таймаут операции происходит), то подвисает все приложение.
Есть ли способ убрать подвисание? Пусть поток останавливается, но не все приложение.
Код потока запроса файлов примерно такой:
Есть ли способ убрать подвисание? Пусть поток останавливается, но не все приложение.
Код потока запроса файлов примерно такой:
- Код: Выделить всё
procedure TLoadMapTileListThread.Execute;
begin
HTTP := THTTPSend.Create;
HTTP.Timeout := 2000;
while (not Terminated) and (LoadTileIterator.Next(CurrTileXY)) do
begin
URL := GetTileURL(CurrTileXY);
HTTP.Document.Clear;
HTTP.Headers.Clear;
LoadTileRes := HTTP.HTTPMethod('GET', URL);
if (LoadTileRes and (HTTP.ResultCode = 200)) then
begin
...
end;
sleep(10);
end;
HTTP.Free;
end;