![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Технология Indy и многопоточность [D7, WinME, Win2k, WinXP]
Woolen © (2002-12-26 12:17:00)Здравствуйте!
Подскажите, пожалуйста. Моя программа должна обращаться к серверу HTTP и закачивать оттуда инфу. Используются компоненты Indy. Для того, чтобы программа не теряла управление на время закачки, этот (не такой уж и простой механизм) использует многопоточность, но сейчас она реализована при помощи стандартного дельфийского механизма многопоточности и имеет много глюков. Бороться с ними крайне неудобно. Насколько я понял, в движке Indy есть свои механизмы многопоточности. Понимаю, что глупо, но из справки не могу понять как ими воспользоваться, чтобы работать с потоками на более высоком и адаптированном для сетей уровне. Если не трудно, опишите в двух словах схему каким классом, методами пользоваться для создания HTTP-загрузки в отдельном потоке, как завершить это по дисконнекту, запросу пользователя и т.д. Заранее спасибо.
Woolen (2002-12-26 14:13:00) [1]Спасибо
Reindeer Moss Eater (2002-12-26 12:31:00) [2]Для этого в Indy есть TidAntiFreeze
Woolen (2002-12-26 12:30:00) [3]Если в программе не создавать многопоточности, то Indy HTTP занимает основной поток работой, связаной с TCP/IP. То есть, вызов процедуры Post полность передает управление в нее и оно вернется только после того, как будет передан запрос и принят ответ. Естественно, если ответ "весит" 4 мегабайта и передается по модему 14,4, то реагировать на действия пользователя программа начнет не скоро.
Reindeer Moss Eater (2002-12-26 12:22:00) [4]чтобы программа не теряла управление на время закачки ...
А куда оно (управление) теряется?