C#BackgroundWorker不为其他人开火

时间:2013-10-14 17:03:09

标签: c# .net-2.0 backgroundworker

也许这个问题没有意义,但问题是我的程序对我来说运行得很好。但是,当我将它发送给我的兄弟PC(相对较新的PC)进行测试时,BackgroundWorker没有被解雇。

BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(fetchList);
if (!bw.IsBusy)
{
    // I have checked that this stage is reached, and it is.
    bw.RunWorkerAsync();
}

我还调试了被调用的函数,它当然没有触发。我正在使用.NET 2.0所以我不认为这应该是问题吗?

如果重要,工作人员调用的函数使用2个包; HtmlAgilityPackNewtonsoft.Json

1 个答案:

答案 0 :(得分:3)

不,您可以指望 代码正常工作。您不能指望的是您的fetchList方法正常工作。如果它因任何原因抛出异常,那么会阻止你的程序告诉你它。捕获异常并将其作为e.Error属性传递给RunWorkerCompleted事件处理程序。您需要检查并采取适当的纠正措施,至少让用户知道。

您没有RunWorkerCompleted事件处理程序。所以当然你不知道为什么fetchList不起作用。