首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF Dispatcher抛出TargetInvocationException

WPF Dispatcher抛出TargetInvocationException
EN

Stack Overflow用户
提问于 2013-03-14 21:48:39
回答 1查看 3.8K关注 0票数 2

我的调试器有一个问题,当在UI线程中执行错误代码时,调试器会正确地指出错误行,这与在线程中执行时相同,但在调度程序中调用时,它的行为有点奇怪:反汇编中抛出了TargetInvocationException。

我怎样才能正确地显示它,并避免这令人讨厌的消息?

这里有一个简单的例子来说明这个问题:

代码语言:javascript
复制
private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        //navigator.NavigatToMenuAccueil(true);

        //Throws NullPointerException
        /*String x = null;
        String y = x.ToUpper();*/

        Thread th = new Thread(DoWork);
        th.Start();
    }

    private void DoWork()
    {
        //Throws NullPointerException
        /*String x = null;
        String y = x.ToUpper();*/

        Thread.Sleep(1000);
        Dispatcher.BeginInvoke(new Action(() =>
        {
            //Throws TargetInnvocationException 
            /*
            String x = null;
            String y = x.ToUpper();
             */

            MyTextBlock.Text = "My New Text";
        }));            

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-14 21:56:58

TargetInvocationException是由反射(according to MSDN)调用的方法抛出的异常,通过使用BeginInvoke,您可以告诉Dispatcher执行此操作。

在传递的委托中抛出的任何异常都包装在TargetInvocationException中。您不能阻止Dispatcher包装原始exeption。不过,您仍然可以通过访问InnerException来获取原始异常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15411125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档