1

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

4

1 回答 1

4

1)确保您已将WorkerSupportsCancellation属性设置为BackgroundWorkerto True

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

您可能还想单步执行 BackgroundWorker 并验证在取消时,取消挂起属性是否设置为 true。

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

编辑(当 Will 执行编辑时,这被删除了)

您可能还想查看此链接

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

于 2010-10-21T15:53:26.447 回答