如何在vc中停止正在进行的上传

How to stop an ongoing upload in vc

本文关键字:正在进行 vc      更新时间:2023-10-16

在我的应用程序中,我们可以上传文件到服务器。为此,我使用WININET。当用户单击Stop按钮时,我想停止上传过程。现在,如果用户点击stop按钮,正在进行的过程将不会停止上传。如何拒绝上传文件。

如果使用WININET,则需要将文件分为几个较小的块。如果用户按下"取消",则需要设置一个变量来中止上传。这必须在每次小上传后进行检查。。。将上传拆分为更小的ppart的完整示例可以在这里找到:http://support.microsoft.com/kb/177188/en-us您需要下载"hsrex.exe"文件,然后用WinZip或7-zip打开它,并提取"BigPost.cpp"文件。如果你想的话,我也可以在这里发布代码。。。

尝试CHttpFile::EndRequest()函数。。。

另一个想法是,尝试终止为上传操作工作的线程

首先,您需要在工作线程上执行WinInet操作,以便释放UI以单击"取消"按钮。当用户单击"取消"时,UI线程应该关闭WinInet用来上传文件块的句柄。这会导致WinInet立即中止当前正在进行的任何上传区块。要在此时干净地退出工作线程,UI线程应该设置工作线程读取的bool"done"标志,如果设置了该标志,则工作线程将退出,而不是循环以上载另一个块。