내 서비스가 누군가 내 서비스를 중지하려고 시도 할 때 잠재적으로 WinHttpSendRequest
을 실행할 수있는 스레드가 있습니다.동기 WinHttp 요청을 어떻게 취소 할 수 있습니까?
WinHttpCloseHandle documentation는 말한다 :
이같은 문서를 나중에 다음,
WinHttpCloseHandle
를 사용하여 HINTERNET
요청 핸들을 닫는 그러나에 의해 진행중인 동기 또는 비동기 요청을 종료 할 수있는 응용 프로그램에 보인다 이것을 모순된다. 그것은 :
응용 프로그램은 절대로 동기 요청에
WinHttpCloseHandle
호출해서는 안됩니다. 경쟁 조건이 생길 수 있습니다.
this blog post 나는 WinHttpCloseHandle
에 전화 할 수 없다고 동의 한 것으로 보입니다.
서비스를 정상적으로 중지 할 수 있도록이 작업을 어떻게 취소 할 수 있습니까? 너무 오래 걸리고 서비스가 충분히 빨리 멈추지 않기 때문에 실제로는 WinHttpSendRequest
이 시간 초과 될 때까지 기다릴 수 없습니다. 나는 창문이 오류로보고 다음 종료 강제로 서비스를 죽일 생각합니다.
아이디어가 인정 될 것입니다. 핸들 가까이 강제로 백그라운드 스레드 오프 WinHttpCloseHandle
를 호출