.Net后台工作程序未取消
我在用户控制级别使用后台工作程序,它工作正常。但后来我在一个助手函数中推了这个工作程序。我的问题是,在我尝试取消任务之前,它工作正常。在DoWork函数中,每次都会有一个循环调用web服务,在调用该服务之前,它会检查取消挂起,如果是,则应中断该循环。1)确保已将.Net后台工作程序未取消,.net,background,worker,.net,Background,Worker,我在用户控制级别使用后台工作程序,它工作正常。但后来我在一个助手函数中推了这个工作程序。我的问题是,在我尝试取消任务之前,它工作正常。在DoWork函数中,每次都会有一个循环调用web服务,在调用该服务之前,它会检查取消挂起,如果是,则应中断该循环。1)确保已将BackgroundWorker上的WorkersupportScanCcellation属性设置为True 2) 确保您正确地处理了任何web服务引用。(只是因为这是你无论如何都应该做的事情) 您可能还希望单步执行BackgroundW
BackgroundWorker
上的WorkersupportScanCcellation
属性设置为True
2) 确保您正确地处理了任何web服务引用。(只是因为这是你无论如何都应该做的事情)
您可能还希望单步执行BackgroundWorker,并验证取消时,取消挂起属性是否设置为true
如果这些东西都没有帮助,那么您可能需要考虑显示用于创建和启动后台工作程序的代码以及事件的任何代码(DoWork、RunWorkRebug等)。 编辑(将在执行编辑时删除此选项)
你可能还想看看这个 从该链接中获得的一个重要信息是,即使您取消,如果员工已经在做工作(即:通过DoWork处理)它可能会错过取消挂起并继续工作。1)确保已将BackgroundWorker
上的WorkersSupportsScanCellation
属性设置为True
2) 确保您正确地处理了任何web服务引用。(只是因为这是你无论如何都应该做的事情)
您可能还希望单步执行BackgroundWorker,并验证取消时,取消挂起属性是否设置为true
如果这些东西都没有帮助,那么您可能需要考虑显示用于创建和启动后台工作程序的代码以及事件的任何代码(DoWork、RunWorkRebug等)。 编辑(将在执行编辑时删除此选项)
你可能还想看看这个从该链接获得的一个重要信息是,即使在取消时,如果工作人员已经在做工作(即:通过DoWork处理),它也可能错过取消挂起并继续它的工作。如何调用web服务?哪种语言?(该解决方案在不同的.NET语言中具有不同的语法。例如,在VB.NET中,您是否使用“WithEvents”声明BackgroundWorker,然后将您的后台工作程序入口点声明为Handles(me)。RunWorkerCompleted?…以便它实际获得停止事件。)这可能是挂起的Web服务,避免您的
BackgroundWorker
实例取消其请求。如何调用您的web服务?哪种语言?(该解决方案在不同的.NET语言中具有不同的语法。例如,在VB.NET中,您是否使用“WithEvents”声明BackgroundWorker,然后将您的后台工作程序入口点声明为Handles(me)。RunWorkerCompleted?…以便它实际获得停止事件。)这可能是挂起的Web服务,避免您的BackgroundWorker
实例取消其请求。我正在执行步骤1,对于步骤2,我使用关键字。但我发现取消挂起属性并没有设置为true,即使它转到CancelAsync function.Hmm。我看到当威尔编辑我的答案时,我的编辑就消失了。现在添加我的编辑。我正在执行步骤1,对于步骤2,我使用关键字。但我发现取消挂起属性并没有设置为true,即使它转到CancelAsync function.Hmm。我看到当威尔编辑我的答案时,我的编辑就消失了。现在正在重新添加我的编辑。