在后台线程中有许多作为一系列功能运行的处理,还有一个带有取消按钮的表单。与往常一样,取消按钮会将CancellationPending
位置1。
在每个函数调用之间,通过以下方法进行检查:
If (worker.CancellationPending) Then
e.Cancel = True
Return
End If
但是,如果一个功能(例如,用于加载多个文件的功能)开始显示错误消息,则用户希望在该位置停止该程序,而不是等到完整的功能完成为止。我该怎么做?
我可以在每个函数中多次检查worker.CancellationPending
位,但是我认为这可能会导致代码很笨拙。
有没有办法在后台运行函数的过程中停止它?
答案 0 :(得分:0)
不能。仅在任意点从外部终止某些东西通常是一个坏主意,因此BackgroundWorker
不支持它。您可以考虑创建自己的Thread
,然后在其上调用Abort
。通常出于相同原因不建议这样做,但至少有可能。