我在用户控制级别使用后台工作程序并且它工作正常。但是我在其中一个Helper函数中推送了worker。我的问题是它工作正常,直到我尝试取消任务。在DoWork函数中,每次都有循环调用Web服务,在调用服务之前它会检查取消挂起,如果是,那么它应该打破循环。
答案 0 :(得分:4)
1)确保您已将WorkerSupportsCancellation
上的BackgroundWorker
属性设置为True
。
2)确保您正确处理任何Web服务引用。 (只是因为这是你应该做的事情)
您可能还需要单步执行BackgroundWorker并验证取消后取消暂挂属性是否设置为true。
如果这些都没有帮助,那么您可能需要考虑显示创建和启动backgroundworker的代码,以及事件的任何代码(DoWork,RunWorkerCompleted等)。
编辑(这将在执行编辑后删除)
您可能还想查看此link。
从该链接获得的一个重要的事情是,即使您取消,如果工作人员已经在工作(IE:通过DoWork处理),它可能会错过取消支持并继续它的工作。