.Net背景工作者不取消

时间:2010-10-21 14:04:17

标签: .net background worker

我在用户控制级别使用后台工作程序并且它工作正常。但是我在其中一个Helper函数中推送了worker。我的问题是它工作正常,直到我尝试取消任务。在DoWork函数中,每次都有循环调用Web服务,在调用服务之前它会检查取消挂起,如果是,那么它应该打破循环。

1 个答案:

答案 0 :(得分:4)

1)确保您已将WorkerSupportsCancellation上的BackgroundWorker属性设置为True

2)确保您正确处理任何Web服务引用。 (只是因为这是你应该做的事情)

您可能还需要单步执行BackgroundWorker并验证取消后取消暂挂属性是否设置为true。

如果这些都没有帮助,那么您可能需要考虑显示创建和启动backgroundworker的代码,以及事件的任何代码(DoWork,RunWorkerCompleted等)。

编辑(这将在执行编辑后删除)

您可能还想查看此link

从该链接获得的一个重要的事情是,即使您取消,如果工作人员已经在工作(IE:通过DoWork处理),它可能会错过取消支持并继续它的工作。