【发布时间】:2010-02-20 16:05:19
【问题描述】:
在 WPF 应用程序中,我有一个调度的数据库访问任务,由计时器定期运行,该任务已在 BackgroundWorker 线程中执行。
当连接尝试失败时,我通过try_catch 构造引发异常,并且我想更新 UI 线程中的状态栏文本。
BackgroundWorker 中是否有一些预构建事件构造用于实现此功能,例如 DoWorkEventHandler 或 RunWorkerCompletedEventHandler,可用于此目的?如果没有,如何做得更好?
已编辑(添加):
如果我想处理RunWorkerCompletedEventHandler 内部的异常,使用e.Error 参数,它不起作用。如果我在 BackgroundWorker 线程中未处理异常,应用程序会挂起并且调试器指向在 BackgroundWorker 线程内执行的代码字符串,说:用户代码未处理异常 em>。
因此,在这种情况下,线程不只是停止,向RunWorkerCompletedEventHandler 发出信号它因错误而停止,而是整个应用程序停止工作。
【问题讨论】:
-
感谢大家的回答!考虑到一些答案,我用更多细节更新了我的问题。
标签: c# .net wpf multithreading backgroundworker