![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прервать соединение [D7, XP]
v eb © (2006-05-25 15:45:00)Здравствуйте.
Подскажите, что сделать чтоб по нажатию кнопки прервалась работы функции IdHTTP.Get. Т.е. если медленное соединение, а страница большая, то надо предоставить пользователю возможность прервать загрузку. Как это сделать?
veb (2006-05-25 16:59:00) [1]Сергей, спасибо!
Еще не попрбовал, но в целом понятно.
Сергей М. (2006-05-25 16:47:00) [2]
> veb (25.05.06 15:57) [2]
в Indy9:
CloseSocket(IdHTTP.Socket.Binding.Handle)
Эта строка, вызванная в доп.потоке, приведет к прерыванию выполнения метода Get() в потоке, вызвавшем это самый IdHTTP.Get().. При этом будет возбуждено исключение, перехватываемое и обрабатываемое в блоке try..except
Kolan (2006-05-25 16:05:00) [3]Я ни разу не работал с интернетом итд. Но видимо смысл такой.
Как всегда тяжёлые вычисления, копирование, а в вашем случае загрузка выносятся в отдельный поток(TThread). А прерывается все это дело из главного по команде пользователя.
PS
Попытался интерпритировать [1]. Могу ошибаться :)
veb (2006-05-25 15:57:00) [4]Сергей, не понял сленг? имется виду разбиение на потоки?
Пожалуйста, можно пример кода.
у меня сделано так
Memo1.Text := IdHTTP.Get(' http://...');
и все было бы хорошо если б я мог прервать загрузку.
Сергей М. (2006-05-25 15:46:00) [5]Закрыть гнездо из другого треда