2016-01-13 95 views
0

我在我的WPF程序中使用ReactiveUI,WPF窗口可以初始化并正常显示,我在调试模式是,ReactiveUI.pdb没有加载

但有时当我运行一些命令代码结合按钮,它会显示错误的下方,并且有不是更多的信息,所以我不知道有什么理由例外:

ReaciveUI.pdb包含所需的调试信息(...)

enter image description here

并继续后,一个窗口显示那么程序停止:

类型的unhhandled例外 'System.Exception的' 在ReactiveUI.dll

enter image description here

发生如何处理这个问题?

+1

我的建议 - 阅读整个消息框(您在问题中包含的截图)。具体来说,最后一句:_为了防止这种情况,请订阅Objects_的ThrownExceptions属性。 – pmbanka

回答

0

我发现这个问题的关键点后,错误发生在

BtmCheckCmd = ReactiveCommand.CreateAsyncTask(
       canBtmCheckCmd, //CanExecute 
       async _ =>//Execute 
       { 
        ProgressWinDow.RunCheckAndBarHandle(); 

        MessageBox.Show("SomeThing"); 
       } 

我找到新的方法来检查whrere我以前不知道这么晚的问题,我可以找到解决方案。在我的情况下,当发生异常之前,有时候messagebox会显示(有时候不是),然后如果messagebox显示,单击OK和异常窗口显示之后的somtimes,如果这样做,我找不到哪个部分我的代码执行问题haapen,

,但如果我点击暂停时在MessageBox显示(不要单击OK,但点击下调试模式MSGBOX节目暂停),然后去它执行的代码部分,

enter image description here

通过这样做,我发现“Messagebox show”位于代码块o ˚F

异步

在代码的一部分,且有正处于异步二方法,所以它应该是这个原因这个问题,或许真的错了,当异步二方法在同一时间。

而在我的情况下,Messagebox最初只是用于测试,所以我删除了MessageBox并解决了问题。

另一种方法来查找多线程的问题正在调试模式,

,并设置断点,然后执行的代码部分,进入一个破发点的时候,然后去到顶部工具栏中选择:

调试>> >>的Windows线程

enter image description here

然后在线程窗口可以看到线程在做什么