我在我的WPF程序中使用ReactiveUI,WPF窗口可以初始化并正常显示,我在调试模式下,
但有时当我运行一些带按钮的命令代码绑定时,它会在下面显示错误,并且没有更多信息,所以我不知道异常的原因是什么:
ReaciveUI.pdb包含所需的调试信息(...)
在继续之后,会出现一个窗口,然后程序停止了:
ReactiveUI.dll
中出现未处理的“System.Exception”类型异常
如何处理这个问题?
答案 0 :(得分:0)
我后来找到了问题的关键点,错误发生在
BtmCheckCmd = ReactiveCommand.CreateAsyncTask(
canBtmCheckCmd, //CanExecute
async _ =>//Execute
{
ProgressWinDow.RunCheckAndBarHandle();
MessageBox.Show("SomeThing");
}
我找到了一种新的方法来检查我以前不知道的问题,以后我可以找到解决方案。
在我的情况下,当发生异常时,有时消息框显示(有时不显示),然后如果消息框显示,则在单击“确定”和“异常窗口显示”之后显示,如果这样做我无法找到我的部分代码解决了问题,
但是如果我在消息框显示时单击暂停(不是单击“确定”,而是在msgbox显示时单击调试模式下的暂停),那么它将转到它执行的代码部分,
通过这样做,我发现" Messagebox show"在
的代码块中异步
在代码部分,并且在异步中有两个方法,所以它应该是这个问题的原因,也许在同时异步两个方法时出错了。
在我的情况下,Messagebox最初只是用来测试,所以我删除了MessageBox并解决了问题。
在多线程中找到问题的另一种方法是在调试模式下,
并设置断点,然后在进入断点时执行该部分代码,然后转到顶部的ToolBar选择:
调试和GT;> Windows和GT;>线程
然后在线程窗口中可以看到线程在做什么