1

也许这个问题没有意义,但问题是我的程序对我来说运行得很好。但是,当我将它发送到我的兄弟 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,所以我不认为这应该是问题?

如果重要的话,worker 调用的函数正在使用 2 个包;HtmlAgilityPackNewtonsoft.Json

4

1 回答 1

3

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

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

于 2013-10-14T17:54:42.710 回答