Информация об изменениях

Сообщение Re: WinInet + ASYNC mode + Завершение работы от 30.01.2019 2:57

Изменено 30.01.2019 3:00 RickD

Re: WinInet + ASYNC mode + Завершение работы
Здравствуйте, RickD, Вы писали:

RD>Здравствуйте.


RD>Изучаю работу WinInet в асинхронном режиме. Задача простая — скачать содержимое сайта. Есть пару вопросов.


RD>1) Если я делаю InternetSetStatusCallback(hRequest, NULL), гарантирует ли это, что больше Callback функция в других потоках для hRequest не будет вызываться?

RD>Иными словами, каков механизм вызова Callback функций системой? Windows накапливает асинхронные операции в очереди и после вызова InternetSetStatusCallback(hRequest, NULL) выплевывает в Callback всю оставшуюся очередь? Или после возвращения из Callback функции Windows проверяет, и если указатель на Callback функцию NULL, то дальнейших вызовов гарантированно нет?

RD>2) Если задать несуществующий url, то в Callback между приходом INTERNET_STATUS_RESOLVING_NAME и INTERNET_STATUS_REQUEST_COMPLETE проходит 2.5 секунды. Когда я пробую в этот момент закрыть приложение и перед этим из другого потока вызываю InternetCloseHandle(hRequest), это никак не ускоряет приход INTERNET_STATUS_REQUEST_COMPLETE и приложение вынуждено ждать 2.5 секунды. Хотелось бы это как-то ускорить.
Re: WinInet + ASYNC mode + Завершение работы
*