后台工作者 vb.net 取消异步功能



>im 运行一个后台工作者,该后台工作者正在调用一个函数来下载巨大的文件和文件夹。 我无法通过 Cancelasync 阻止这种情况。收到取消挂起事件,但我的函数仍在计算。如何停止线程?

Private Sub copydownloads_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles copydownloads.DoWork  
DirectoryCopy()
End Sub
    public sub DirectoryCopy()
    'here is the work done
    end sub

CancelAsync 不会神奇地停止 BackgroundWorker。您必须在下载代码中手动轮询"取消挂起"属性。

工作人员代码应定期检查"取消挂起"属性,以查看它是否已设置为 true。

当您看到 CancelPending 设置为 true 时,您必须停止下载(即循环下载小块并不断检查标志)。

https://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.cancelasync%28v=vs.110%29.aspx

有关如何以块的形式下载文件的示例代码,请参阅此问题。在该代码中添加取消挂起检查:下载文件与开始/暂停/停止

最新更新