最佳答案
我的 WinForms 应用程序使用许多 背景工作者对象从数据库中检索信息。我使用 BackoundWorker 是因为它允许在长时间运行的数据库查询期间 UI 保持畅通,并且它简化了我的线程模型。
在这些后台线程中,我偶尔会遇到 DatabaseException 异常,在调试时,我至少在一个工作线程中看到过其中一个异常。我相当肯定这些例外是超时,我认为这是合理的期望不时。
我的问题是,当这些后台工作线程之一发生未处理的异常时,会发生什么情况。
我不认为我可以在另一个线程中捕获异常,但是我可以期望我的 WorkerCompleted 方法被执行吗?是否有任何属性或方法的后台工作者,我可以询问异常?