如何在运行功能时停止后台工作人员?

时间:2018-10-12 08:33:47

标签: vb.net backgroundworker

在后台线程中有许多作为一系列功能运行的处理,还有一个带有取消按钮的表单。与往常一样,取消按钮会将CancellationPending位置1。

在每个函数调用之间,通过以下方法进行检查:

If (worker.CancellationPending) Then
    e.Cancel = True
    Return
End If

但是,如果一个功能(例如,用于加载多个文件的功能)开始显示错误消息,则用户希望在该位置停止该程序,而不是等到完整的功能完成为止。我该怎么做?

我可以在每个函数中多次检查worker.CancellationPending位,但是我认为这可能会导致代码很笨拙。

有没有办法在后台运行函数的过程中停止它?

1 个答案:

答案 0 :(得分:0)

不能。仅在任意点从外部终止某些东西通常是一个坏主意,因此BackgroundWorker不支持它。您可以考虑创建自己的Thread,然后在其上调用Abort。通常出于相同原因不建议这样做,但至少有可能。