Всем привет!
Запрашиваю с 2х компов в локалке файлик status.xml через компонент HTTP_Get и вывожу содержимое в MEMO.
Файлик надо запрашивать раз в секунду, использую MMTimer.
Если оба компа доступны проблем нет, все работает.
Если хоть один недоступен то программа через определенное время зависает или вылетает.
Начал отслеживать проблему заметил что если один из компов в сети не доступен, то программа в диспетчере задач создает до 750 потоков..
В компоненте HTTP_Get есть точка Wait, если использовать True то он ждет закачки файла, если False -то выполняется в отдельном потоке который не завершается в следствии чего кол-во потоков растет.
Подскажите пожалуйста почему не завершаются потоки? Как это можно исправить?
code_31051.txt
------------ Дoбавленo в 13.40:
p.s. использовать свойство Wait True не представляется возможным в виду того, что если один из компов не доступен, то ответ от второго компа получу более чем через 10 секунд..сам
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
| ||
файлы: 1 | code_31051.txt [891B] [196] |
Ответов: 1343
Рейтинг: 31
|
|||
карма: 2 |
| ||
файлы: 1 | code_31054.txt [911B] [201] |
Ответов: 655
Рейтинг: 18
|
|||
Rysik, я ж написал использовать свойство Wait True не представляется возможным в виду того, что если один из компов не доступен, то ответ от второго компа получу более чем через 10 секунд..)))
------------ Дoбавленo в 16.23: Не подходит это решение |
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Gunnman писал(а): что если один из компов не доступенА попинговать |
|||
карма: 22 |
|
Ответов: 1343
Рейтинг: 31
|
|||
nesco писал(а): А попинговать воо точно так лучше то есть перед скачкой поставь проверку пинга |
|||
карма: 2 |
|
Ответов: 655
Рейтинг: 18
|
|||
Пробовал пинг, если не доступен хост то пинг тоже дает задержку 1 сек.
Тут вопрос в другом, почему в моей схеме потоки не уничтожаются? почему они растут и растут если хост недоступен? У меня руки кривые или это глюк в компоненте HTTP_GET? |
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Ну если каждый поток ждет таймаута при отсутствии ответа, а ты в это время создаешь другие...
|
|||
карма: 26 |
|
Ответов: 655
Рейтинг: 18
|
|||
Netspirit, я вот это понял уже..*прячет руки за спину*..а как тогда быть?
Если юзаю wait true и один из хостов недоступен то ответ хоста который доступен получу не раньше чем через 10 или более. А мне нужен опрос раз в 1 сек и без ожидания ответа.. |
|||
карма: 0 |
|
Разработчик
Ответов: 26155
Рейтинг: 2127
|
|||
Gunnman писал(а): Пробовал пинг, если не доступен хост то пинг тоже дает задержку 1 секА если уменьшить таймаут |
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Снизить до минимума таймаут ожидания ответа и не создавать новый поток раньше этого времени. Как сделать с HTTP_GET - возможно перед повторным запросом обрывать предыдущий по doStop.
|
|||
карма: 26 |
|
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
| ||
файлы: 1 | code_31056.txt [1.1KB] [199] |
11