![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
Добрый день. Есть код загрузчика страниц(вызывается в поток):
Код:
- загрузка 100 УРЛ за 20...25 сек (10 потоков одновременно) - никаких утечек памяти практически все как предначертано работает 2. При наличие потребителя трафика(другой РС в сети с работающим ТОРРЕНТ, источник интернета - роутер 3 мбит\сек): - загрузка 97...100 УРЛ за 60...120 сек - один или два потока зависают(есть на форме индикатор числа работающих потоков)при закачке УРЛ и могут висеть часами, пока не закрыть программу - никакой зависимости от УРЛ нет, в одон тесте одни УРЛ не закачиваются в другом другие - еще одна особенность: в логе фиксируется ответ сервера. при наличие конкурента на трафик от 10 до 30 УРЛ не загружаются(то же различные, от теста к тесту), хотя ответ сервера = 200 (ну это не самая большая проблема, скоро будет добавлен код перезакачки УРЛ), но о чем то этот факт говорит? Внимание! Вопросы: 1. в чем причина такого поведения TidHttp? возможно надо что то настроить в параметрах загрузчика? 2. возможно ли ввести в поток загрузчика таймер типа: Код:
|
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
какой еще на ... антифриз? это многопоточная закачка страниц
- диспетчер получает список УРЛ - запускает потоки с idHttp и передает каждому свой УРЛ - потоки передают результат в ГлобПерем, через КС конечно и еще много всего расскажи о таймерах в потоке, если в курсе из чего из делать? Последний раз редактировалось Pcrepair; 07.01.2013 в 14:37. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
В Делфийских треадах не припомню возможности таймаута, посему могу только WIN API посоветовать. Или в FIdHttp задать таймаут:
http://www.programmersforum.ru/showthread.php?t=105570
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
да это все есть
Код:
но сейчас не об этом можно ли из потока через КС получить доступ к какомуто источнику времени, типа date но в МСек? можно ли загасить idhttp.get по IdHttp.Socket.Close; |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Заведите список выполняемых потоков и в таймере основного потока прибивайте зависшие.
|
![]() |
![]() |
![]() |
#7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Я вот не помню как в Делфи организовать пул, но где-то (как бы не у Тексейры) про это читал...
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]() Цитата:
- нажимаем кнопку "ПУСК" - вызывается основной поток управления потоками(это чтоб таймер на форме не подвисал), получает список УРЛ(ну до 1000) - основной поток запускает цикл создания потов закачки(внутри экземпляр idhttp) - потоки закачивают и передают результат в ГП и стетчик потоков уменьшают на 1 - основной поток считает сколько потоков в наличии чтоб больше 10 не было, один закончил работу, дозапускается еще один но это все делается без учета ИД потоков, просто есть ГП типа ЧИСЛО Всетаки проблема в idHTTP. прийдеттся на основной форме лепить диспетчер потоков по таймеру проверяющий время жизни потоков была слабая надежда что можно как то в самом экземпляре потока все сделать. так чтобы отработал 300 сек и отключился, неважно отработало ли idhttp.get |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При компиляции программа зависает | utro35 | Общие вопросы Delphi | 5 | 20.01.2012 11:24 |
пк зависает при перезагрузки ОС | netbioz | Компьютерное железо | 6 | 19.11.2011 21:43 |
зависает IdHttp | Kingcss | C++ Builder | 0 | 04.11.2011 21:28 |
Загрузка в Excel html-страниц, ошибки при загрузке и как их побороть | Meta2 | Microsoft Office Excel | 17 | 12.11.2010 01:50 |