Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

блокируется Интернет при использовании компонента 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
14-16745
Rauf
2004-01-15 23:01
2004.02.06
Что за процесс cisvc.exe???


3-16145
Максим
2004-01-15 09:59
2004.02.06
Русский язык в Delphi


1-16455
Евгения
2004-01-28 00:03
2004.02.06
В старой версии.


1-16232
Lekss
2004-01-26 19:48
2004.02.06
Raise


6-16573
Micah'GF
2003-11-29 19:21
2004.02.06
Правильная посделовательность соединения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский