WinInet + ASYNC mode + Завершение работы
От: RickD  
Дата: 30.01.19 02:50
Оценка:
Здравствуйте.

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

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

2) Если задать несуществующий url, то в Callback между приходом INTERNET_STATUS_RESOLVING_NAME и INTERNET_STATUS_REQUEST_COMPLETE проходит 2.5 секунды. Когда я пробую в этот момент закрыть приложение и перед этим из другого потока вызываю InternetCloseHandle(hRequest), это никак не ускоряет приход INTERNET_STATUS_REQUEST_COMPLETE и приложение вынуждено ждать 2.5 секунды. Хотелось бы это как-то ускорить.
Отредактировано 30.01.2019 3:00 RickD . Предыдущая версия .
Re: WinInet + ASYNC mode + Завершение работы
От: RickD  
Дата: 30.01.19 02:57
Оценка:
*
Отредактировано 30.01.2019 3:00 RickD . Предыдущая версия .
Re[2]: WinInet + ASYNC mode + Завершение работы
От: Денис Петренко Россия  
Дата: 08.02.19 13:53
Оценка:
Здравствуйте, RickD, Вы писали:

RD>*



Пиши в личку
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.