c# – 从任何线程处理未处理的异常

编辑

这个问题的答案有帮助谢谢我感谢帮助:)但我最终使用:http://code.msdn.microsoft.com/windowsdesktop/Handling-Unhandled-47492d0b#content

原来的问题:

我想在我的应用程序崩溃时显示错误消息.

目前我有

App.xaml中:

<Application x:Class="WpfApplication5.App"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      dispatcherUnhandledException="App_dispatcherUnhandledException"  // <----------------
      StartupUri="MainWindow.xaml">
    <Application.Resources>             
    </Application.Resources>
</Application>

App.xaml的代码隐藏

namespace WpfApplication5
{        
    public partial class App : Application
    {
        private void App_dispatcherUnhandledException(object sender,dispatcherUnhandledExceptionEventArgs e)
        {
            MessageBox.Show("Caught Unhandled Exception!");
        }
    }
}

当主线程发生错误时,该解决方案非常有效.现在我的问题是如何能够捕获发生在不同线程上的错误

换句话说:当我按下这个按钮时,我可以捕获异常:(App_dispatcherUnhandledException被调用!)

private void button1_Click(object sender,RoutedEventArgs e)
    {            
        int.Parse("lkjdsf");
    }

但是我无法捕捉到这个例外:

private void button1_Click(object sender,RoutedEventArgs e)
    {
        Task.Factory.StartNew(() =>
        {
            int.Parse("lkjdsf");
        });
    }

无论是否在主线程上发生,我将如何捕获所有异常?

解决方法

您可以使用 AppDomain.UnhandledExceptionHandler处理未捕获的异常.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...