當有人試圖阻止我的服務時,我的服務有一個線程可能潛在執行WinHttpSendRequest
。如何取消同步WinHttp請求?
的WinHttpCloseHandle documentation說:
應用程序可通過關閉使用
WinHttpCloseHandle
的HINTERNET
請求手柄但是,後來使用相同的文檔終止正在進行的同步或異步請求似乎與此相矛盾。它說:
應用程序永遠不應該
WinHttpCloseHandle
調用一個同步請求。這可能會造成競爭狀況。
我發現this blog post似乎同意我不能撥打WinHttpCloseHandle
。
我在想如何取消這個操作,以便我的服務可以優雅地停止?我真的不能等待WinHttpSendRequest
自然超時,因爲它需要很長時間,我的服務不會很快停止。我認爲Windows報告這是一個錯誤,然後在關機時強制殺死該服務。
一個想法將不勝感激。