Windows ソケット経由で HTTP 接続を確立する C++/MFC で記述された Windows サービス アプリケーションがあります。WinHttp * APIを使用して、すべてのソケット関連操作を実行します。ソケットを介して接続中の場合に誰かがそのサービスを停止/アンインストールしようとする場合を除いて、すべてうまく機能します(特に、インターネットケーブルが抜かれている場合など、そのような接続を確立できなかった場合)ソケット API は、サービスが閉じる前に数秒間戻りません (明らかに、サービス内のメカニズムは、ソケット スレッドが「正常に」終了するのを待ちます)。
私の質問は、WinHttpOpen()、WinHttpConnect()、および WinHttpOpenRequest() への呼び出しから取得された (HINTERNET タイプの) 接続および要求ハンドルと同様に、開いているソケット ハンドルがある場合、他のものを強制的に作成する方法はありますか?現在ソケットで動作している可能性のある WinHttp* API はすぐに戻りますか?
PS。ソケットスレッドが閉じるのを待つ前に(サービスをアンインストール/停止する前に)、メインスレッドからそうすることを考えていました。