是否有可能在 c# WPF 应用程序中全局捕获意外错误 - c# 4.0
是否有可能在 c# WPF 应用程序中全局捕获意外错误 - c# 4.0
我发现 DispatcherUnhandledException 能够捕获 UI 线程错误,但实际上我需要 TPL 线程。 UnhandledException 能够捕获线程错误,但它仍然导致软件终止。
因此,任何解决方案都可以在线程中而不是 UI 线程中捕获未处理的异常,并且仍然让软件运行而不终止。线程是 TPL 线程。 (任务并行库)
Is it possible to catch unexpected errors globally in c# WPF application - c# 4.0
I found that DispatcherUnhandledException was able to catch UI thread errors but actually i need TPL threads. UnhandledException was able to catch thread errors but it was still causing software to terminate.
So any solution to catch unhandled exceptions in the threads not in UI thread and still let software to run not terminate. Threads are TPL threads. (Task Parallel Library)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您已经完成的处理 DispatcherUnhandledException 的一部分将其添加到您的配置文件中,
这可以防止辅助线程异常关闭应用程序。
A part from handling
DispatcherUnhandledException
which you already have done add this to your config fileThis prevents your secondary threads exception from shutting down the application.
您可以使用 TPL 中的
自定义升级策略
来解决您的问题。您可以通过向静态System.Threading.Tasks.TaskScheduler.UnobservedTaskException
成员添加事件处理程序来实现此目的You can use
Custom Escalation Policy
in TPL to address your case.You do this by adding an event handler to the staticSystem.Threading.Tasks.TaskScheduler.UnobservedTaskException
member