GUI错误报告

时间:2009-04-01 11:06:57

标签: c# .net user-interface error-handling

我正在使用后台工作程序来从数据库中获取数据。我的问题是我很难报告数据库活动中的任何错误。

我已经尝试从DatabaseUpdater类直接生成一个Dialog(我创建的Windows窗体)。然而,这挂起,我留下了一个白色的盒子,而不是错误信息。我尝试在一个单独的线程中生成Dialog - 这导致Dialog几乎立即出现并消失。显然我并不完全对此感到惊讶,但是维护Dialog的尝试导致了相同的白盒效应。

我想我的问题是显示来自线程活动的错误的最佳做法是什么?

3 个答案:

答案 0 :(得分:2)

这是多线程和WinForms的良好资源:Synchronizing calls to the UI in a multi-threaded application

答案 1 :(得分:1)

假设从UI线程调用BackgroundWorker任务,您应检查并显示RunWorkerCompleted事件的处理程序中的任何错误 - 不要尝试在DoWork处理程序方法中处理它们...

答案 2 :(得分:0)

可能不是您要找的内容,但您可能会从主窗体上的InvokeRequired属性和Invoke方法中获得一些里程。