У моей службы есть поток, который потенциально может выполнять WinHttpSendRequest
, когда кто-то пытается остановить мою службу.
В документации WinHttpCloseHandle написано:
Приложение может прервать выполняющийся синхронный или асинхронный запрос, закрыв дескриптор запроса HINTERNET
, используя WinHttpCloseHandle
Но позже эта же документация, похоже, противоречит этому.В нем говорится:
Приложение никогда не должно WinHttpCloseHandle
вызывать синхронный запрос.Это может создать условия гонки.
Я нашел этот пост , который, кажется, согласен, я не могу позвонить WinHttpCloseHandle
.
I 'Мне интересно, как я могу отменить эту операцию, чтобы моя служба могла быть остановлена изящно?Я не могу дождаться истечения времени ожидания WinHttpSendRequest
, потому что это занимает слишком много времени, и мое обслуживание не останавливается достаточно быстро.Я думаю, что Windows сообщает об этом как об ошибке, а затем принудительно убивает службу при завершении работы.
Идея будет оценена.