私のアプリケーションでは、アップロード ファイルをサーバーにアップロードできます。このために、WININET を使用しています。ユーザーがボタンをクリックしたときにアップロードプロセスを停止したいStop
。ユーザーがstop
ボタンをクリックしても、進行中のプロセスはアップロードを停止しません。ファイルのアップロードを拒否するにはどうすればよいですか。
3 に答える
WININET を使用している場合は、ファイルをいくつかの小さなチャンクに分けて投稿する必要があります。ユーザーが「キャンセル」を押した場合、変数を設定してアップロードを中止する必要があります。これは、小さなアップロードごとに確認する必要があります... アップロードを小さな ppart に分割する完全な例は、次の場所にあります: http://support.microsoft.com/kb/177188/en-us 「hsrex. exe」ファイルをWinZipまたは7-zipで開き、「BigPost.cpp」ファイルを解凍します。また、必要に応じて、ここにコードを投稿できます...
まず、ワーカー スレッドで WinInet 処理を実行して、UI を解放して [キャンセル] ボタンをクリックできるようにする必要があります。ユーザーが [キャンセル] をクリックすると、UI スレッドは WinInet がファイルのチャンクをアップロードするために使用しているハンドルを閉じる必要があります。これにより、WinInet は現在進行中のアップロード チャンクを即座に中止します。この時点でワーカー スレッドを正常に終了するには、UI スレッドは、ワーカー スレッドが読み取る bool 'done' フラグを設定する必要があります。設定されている場合、ワーカー スレッドはループして別のチャンクをアップロードする代わりに終了します。