Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

блокируется Интернет при использовании компонента IdHttp   Найти похожие ветки 

 
Delphi5.01 ©   (2003-11-30 22:08) [0]

Доброе время суток уважаемые программисты!
Почему при использовании компонента IdHttp и его функции Get(Url: String), блокируется Интернет а именно если в программе до этого было запушено закачивания файла то оно приостанавливается до того времени пока новое закачивание не закончится! Как можно заставить работать параллельно нескольким закачкам! Возможно есть смысл использовать потоки, и каждое действие разместить в разные потоки (но в этом я не вижу решение проблемы, по моему проблема не решится используя потоки! или я не прав!).
Спасибо.


 
Digitman ©   (2003-12-01 09:05) [1]


> или я не прав


не прав. как раз доп.код.потоки и решают задачу


 
nikkie ©   (2003-12-01 14:15) [2]

я бы не стал говорить, что "блокируется Интернет", если блокируется всего-навсего таже самая программа


 
Delphi5.01 ©   (2003-12-01 21:45) [3]

Spasibo za pomosh popitaus reshit deolo potokami! esli chto ne budet rabotat to nadeus ia smogu obratitsa k vam? :-)))
Spasibo za udelonnoe vnimanie!


 
Delphi5.01 ©   (2003-12-03 23:20) [4]

Доброе время суток!
К сожалению результат не получен! Привожу пример:

Get:=TDownloader.Create(True);
Get.SetUrlValues(" http://welcome.online.ge/vdialpro.html","","",2);
Get.Priority:=tpIdle;
Get.Resume;

проблема та же, сначала закачивается один файл, а уж потом другой, не смотря на то что запушено два потока, по какой-то причине второй поток (а так не должно быть) начинает работать только после закачивания первого!
Привожу текст потока:

procedure TDownloader.DoWork;
begin
GetText(PUrl,PUserName,PPassword,PThreadIndex);
end;

procedure TDownloader.Execute;
begin
Synchronize(DoWork);
end;

procedure TDownloader.SetUrlValues(Url: String;
UserName: String;
Password: String;
ThreadIndex: Integer);
begin
PUrl:=Url;
PUserName:=UserName;
PPassword:=Password;
PThreadIndex:=ThreadIndex;
end;

Пожалуйста помогите решить проблему!
Спасибо за помощь


 
nikkie ©   (2003-12-04 00:10) [5]

никогда так не делай:
procedure TDownloader.Execute;
begin
Synchronize(DoWork);
end;

скажи пожалуйста, ты этот код из книжки Архангельского взял?


 
Delphi5.01 ©   (2003-12-04 07:11) [6]

Доброе время суток програмеры!
Я этот код взял с примера в интернете там так было написано! А что здесь и есть ошибка? Может подскажеш что надо писать? Например
while not Terminated do
Synchronize(DoWork);
Но мне кажется в моём случае в этом нет смысла по той причине что процедура испольняется только один раз.
Спасибо!


 
Геннадий ©   (2003-12-04 07:13) [7]

У тебя процедура, которая делает полезную работу находится в самом потоке (реализованиа в его классе). По-моему, она должна быть описана в другом классе, обычно в public твоей формы. Или нет?


 
Delphi5.01 ©   (2003-12-04 16:05) [8]

Доброе время суток!
Мне кажется вы не совсем правы, какой смысл имеет переместить процедуру из потока в главную программу(это толь мои убежденияб но я все равно проверю)? Я убрал её специально чтоб не загрязняла главный модуль!
По моему надо искать другую причину, основываясь на отве Никки мы можем сказать что проблемма здесь
procedure TDownloader.Execute;
begin
Synchronize(DoWork);
end;

но к сожалению не приведен правильный код!
Спасибо за уделлённое время Генадий!
Если у кого есть еще кокиета соображения по этому поводу пожалуста высказывайте!


 
nikkie ©   (2003-12-04 20:52) [9]

>но к сожалению не приведен правильный код!
звучат фанфары, вся публика встала, аплодисменты и крики виват - встречайте! правильный код!
procedure TDownloader.Execute;
begin
DoWork;
end;


не из книжки, значит... не подтверждается тезис Игоря Шевченко.


 
Delphi5.01 ©   (2003-12-05 07:12) [10]

Солют, браво, бравооооо, браво мастро!
Спасибо огромное!



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
1-16460
Enigmatic
2004-01-28 02:24
2004.02.06
Сохранение настроек


7-16780
dkDimon
2003-11-18 22:18
2004.02.06
System Tray


1-16504
-=[SDA]=-
2004-01-27 12:50
2004.02.06
Помогите с КРИПТОАЛГОРИТМОМ!!!


1-16313
LaidBack
2004-01-28 13:44
2004.02.06
Как послать контролу сообщение о нажатии Ctrl+C?


1-16373
Ser_ega
2004-01-23 23:18
2004.02.06
Label