c# - 使用 WF 的多线程应用程序的错误处理模式?

标签 c# .net wpf multithreading error-handling

我正在写一个长而详细的问题,但只是将其废弃以支持一个我在这里找不到答案的更简单的问题。

应用简介:

我有一个生成多个线程的 WPF 应用程序,每个线程都执行自己的 WF。处理线程和 WF 中允许从 GUI 端进行用户交互的错误的最佳方法是什么?我绝对计划处理线程中的任何低级异常,因为我不希望线程退出。

问题总结:

  1. 您如何实现 WF 与启动它的线程之间的通信?有 WorkflowTerminated,但我不希望工作流退出——我需要解决问题并让它继续。我假设唯一的选择是使用 FaultHandler,但想知道是否有另一种方法可以在不使用事件 block 的情况下完成。我希望有一个我还没有找到的框架。

  2. 来自 WF 的错误需要被线程捕获,然后需要在 GUI 中显示错误。然后用户将做出恢复的逻辑选择,然后应该将其发送回线程,然后发送到 WF。再说一遍,我应该看看外面有什么东西吗?

即使是能够实现我所描述的内容的流行语/关键字也会非常有帮助,我可以对它们中的每一个进行研究。然而,任何额外的见解总是受欢迎的。 :)

最佳答案

在多线程 WPF 应用程序中对我有用的是让错误线程调用回调方法,将异常和其他信息传递回 UI 线程。回调可以有返回值,所以如果你的线程在等待用户响应时可以阻塞,那么这对你有用。请记住,回调将在调用它的线程上运行,因此任何 UI 更新都必须通过控件的调度程序完成。您将必须决定是否所有线程都使用相同的回调,以及如果多个线程有可能同时抛出异常,您需要哪种同步。

关于c# - 使用 WF 的多线程应用程序的错误处理模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2238392/

相关文章:

C# - 从基本方法完成返回

.NET 编译器——调试与发布

wpf - PowerShell 可以用作 WPF 的代码吗

c# - 当另一个类更新时更新 ListView

c# - 如何使用 itextsharp 库旋转 pdf

c# - WPF 移除窗体(仅标题栏)

.net - 使参数化查询同时适用于 SQL Server 和 Oracle

.net - 如何在使用 WCF(或 WSE 3)的 Web 服务客户端应用程序的请求和响应中混合消息编码类型(文本/MTOM)?

wpf - 在 WPF 数据上下文中获取控件高度

c# - asp.net mvc 3 silverlight 类似验证