Visual Studio"未处理的win32 expcetion出现"经常点击按钮时

时间:2016-05-05 20:33:34

标签: c# .net win-universal-app

我的C#UWP-Win10应用程序存在一个奇怪的问题。当我经常调整窗口大小或经常点击随机按钮(> 3次)时,我收到错误:

  

bla.exe [bla-id]

中发生了未处理的win32异常

关闭此窗口后,应用程序崩溃,在输出窗口中我得到:

  

该程序' [bla-id] bla.exe'已退出代码-1073741811(0xc000000d)。

没有来自Visual Studio的更多信息。我在此应用中使用了串口,但我发现只有在我连接到设备时才会出现此错误。但是:我已经添加了一个空按钮(没有Click-handler),并且在此按钮上发生了同样的错误。

此外,我已经查看了事件查看器并看到了崩溃的模块:

  

ntdll.dll(偏移量0x00000000000f5670)

如何追查问题?我没有使用外部API或其他东西。

2 个答案:

答案 0 :(得分:0)

经过一段时间(两周)的测试和调试后,我发现了问题:垃圾收集器正在关闭serialport输入流,因此DataReader(正在读取serialport)死掉立即抛出这个未指明的异常。基本上这是datareaader在代码中没有正确处理的问题。 "推理"解决。

答案 1 :(得分:0)

我知道这篇文章已经三岁了,但是当我在寻找解决这个完全相同的问题的方法时,我发现了它,也许我的经验可以帮助下一个偶然发现它的人。

在阅读了OP对他自己的问题的回答后,我开始调查垃圾回收,对象处置等。我发现,如果我的DataReader和DataWriter对象是全局范围的,则它们有被垃圾回收的风险,采用。对我有用的是,每次需要时,都使用using(DataWriter dw = new DataWriter(EventHandlerForDevice.Current.Device.OutputStream)) { ... }块或对DataReader对象类似的对象在本地确定这些对象的范围。自从以这种方式实现它们之后,我再也没有任何win32异常。希望这会有所帮助!