![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов 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) не поможет?