http リクエストを使用してサーバーへのファイルのアップロードを容易にするアプリケーションがあります。ファイルのアップロードには HttpSendRequestEx と HttpEndRequest を使用しています。そして、それはうまく機能しています。また、アップロードは別のスレッド内で実行されます。アップロードするファイルを 1 つずつ処理します。
新しい要件は、ユーザーがいつでもアップロードをキャンセルできるようにすることです。現在、アップロードはスレッド内で実行されるため、それを制御することはできません。
回避策として、私が行ったことは、ユーザーがアップロードをキャンセルするボタンをクリックすると、次の HINTERNET ハンドル
hSession returned from InternetOpen
hConnect returned from InternetConnect
hRequest returned from HttpOpenRequest
InternetClosehandle 関数を使用して閉じられました。
これらのハンドルはスレッド内で使用されるため、直接アクセスすることはできません。したがって、これらをスレッドが実行されるクラスの静的メンバーとして宣言しました。ボタンクリックが発生したときに直接アクセスできるようにします。
これにより、処理中のリクエストはすぐにキャンセルされます。しかし、これが良い方法かどうかはわかりません。したがって、このロジックを進める上でセキュリティ上の問題があるかどうかを知りたい..
また、これよりも優れたオプションはありますか....
これについてコメントをよろしくお願いします。これに関する専門家のアドバイスを期待しています..
前もって感謝します