WPF AppDomain UnhandledException处理程序超时

时间:2013-10-11 20:37:25

标签: c# .net wpf

如果AppDomain有未处理的异常,您可以处理AppDomain.CurrentDomain.UnhandledException事件。

但是,您无法阻止AppDomain关闭。你不能只是阻止线程。最终,AppDomain将关闭它。

在ASP.NET中,如果您注册了对象(IRegisteredObject),AppDomain将为您的代码提供30秒的运行时间。

有谁知道标准WPF应用程序的超时是什么?

1 个答案:

答案 0 :(得分:0)

我不知道如何为DispatcherUnhandledException处理程序设置超时

但是,应用程序是否以 Environment.Exit Application.Exit 终止,其中存在未处理的异常?

引用:http://www.dev102.com/2008/06/24/how-do-you-exit-your-net-application/

  

Environment.Exit - 来自MSDN:终止此过程并提供   底层操作系统指定的退出代码。这是代码   在使用控制台应用程序时调用。

     

Application.Exit -   来自MSDN:通知所有消息泵必须终止,以及   然后在消息发布后关闭所有应用程序窗口   处理。如果您已经调用,这是要使用的代码   Application.Run(WinForms应用程序),此方法停止所有运行   所有线程上的消息循环并关闭所有窗口   应用。关于这个方法还有一些问题,请阅读   它在MSDN页面中。

对于WPF,如果未处理的异常会使应用程序崩溃 Environment.Exit (假设为Application.Exit) - 我怀疑应用程序在完成所有线程之前不会退出。如果是这样,那么您可以尝试通过DispatcherUnhandledException处理程序中的线程执行您需要执行的操作。

如果这也是行为,你能告诉我吗?我好奇。我们从未遇到过这样的问题,因为在WPF DispatcherUnhandledException处理程序中我们只进行简单的日志记录到磁盘