Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов InternetSetStatusCallback из TThread


TempUser142 ©   (2011-02-16 01:13:00) 

Возникла интересная проблема. Есть кусок кода который отправляет файл на сервер с помощью WinInet. Для статуса загрузки используется InternetSetStatusCallback и моя произвольная callback функция. Отправка данных функцией HttpSendRequestEx.

При выполнении всего этого куска в основном потоке программы, проблем не возникает, всё работает как собсно и задумывалось. При попытке выполнить этот же код из TThread возникают какие-то непонятные явления. Прогресс доходит примерно до 30% и всё замирает. Попробовать пошаговую отладку, дошёл до первого входа в мою callback ф-ю и с этого момента выхожу из пошагового выполнения кода и запускаю нормальное выполнение, всё работает нормально. Если же выхожу из пошагового режима до первого запуска callback ф-и то опять всё замирает, т.е. не работает как надо.

Нашёл какие то обрывки упоминания о том что InternetSetStatusCallback создаёт отдельный поток http://stackoverflow.com/questions/1977212/asynchronous-request-using-wininet.Но как это увязать с моей задачей ума не хватает.. Кусок кода отправки файла на сервер взят с этого примера http://forum.vingrad.ru/forum/topic-186678/kw-wininet-tmfwihttp-http-client.html.

Подскажите пожалуйста знающие люди как подружить этот пример с TThread


TempUser142   (2011-02-16 17:17:00) [1]

Без потока никак.. INTERNET_FLAG_ASYNC результата никакого не дал..


clickmaker   (2011-02-16 01:31:00) [2]

а нужно именно в потоке?
InternetOpen(...,INTERNET_FLAG_ASYNC) не поможет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо