我们已经为其中一位客户实现了一个WPF应用程序。 它是在.NET Framework 4.5和vs 2015中实现的。 客户确定了一个主要问题。那是如果他停止使用应用程序一段时间,后来又在同一情况下继续使用该应用程序则不负责任。 我们无法找到根本原因。
能否请您帮助我们前进。
答案 0 :(得分:0)
正如@Tobias Moe评论,这可能是内存泄漏问题。但是,您的应用程序似乎无法处理所有异常,因此会导致崩溃。
处理 Application.DispatcherUnhandledException 事件以处理未处理的异常。当应用程序抛出异常但未对其进行处理时,会发生此异常。 MSDN
在您的App.xaml中放置 DispatcherUnhandledException 事件;
<Application x:Class="Travelport.UniversalDesktop.Shell.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:compui="http://schemas.travelport.com/CompositeUI"
ShutdownMode="OnExplicitShutdown"
xmlns:SRD="clr-namespace:Travelport.UniversalDesktop.Common.Controls.Helpers;assembly=Travelport.UniversalDesktop.Common.Controls"
DispatcherUnhandledException="Application_DispatcherUnhandledException">
在其中放置的App.xaml.cs中,它应该捕获任何未处理的UI线程错误:
private void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
new MessageBoxService().Show(e.Exception.StackTrace, e.Exception.Message);
if (System.Diagnostics.Debugger.IsAttached)
{
System.Diagnostics.Debugger.Break();
}
e.Handled = true;
}
这将从自定义线程中捕获所有未处理的错误:
在App.xaml.cs中覆盖OnStartup并添加以下行:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Application_UnhandledException);