从调试器在Windows CE中运行,导致最终的内存不足崩溃

时间:2011-08-31 00:08:59

标签: c# visual-studio-2008 .net-3.5 serial-port windows-ce

我正在为Windows CE计算机构建一个C#应用程序。 CE机器正在与串行设备通信,我正在使用SerialPort类。

当我通过右键单击和部署从Visual Studio运行项目时,它将运行正常15到20分钟,然后放慢速度并最终因内存不足而崩溃,但是当我部署解决方案并从本地运行时CE机器(导航到文件夹,打开exe),它运行一整天,只要我尝试过它。

我不知道为什么。我已经尝试构建发布和调试,它没有任何区别。唯一似乎是它的运行方式。我也尝试使用dotTrace对应用程序进行分析,看起来它在分析开始之前被部署到CE机器上;在任何情况下,我都无法在分析器运行时重现该错误。

我还尝试将处理串行流的代码打包到DLL中,认为Visual Studio在调试时可能会弄乱其中的内容,但这也没有改变任何内容。

我有什么办法可以提高从IDE运行的稳定性吗?我喜欢能够用它进行调试,但是这种不一致让我觉得我可能做错了什么。

1 个答案:

答案 0 :(得分:1)

据我们所知,我描述的问题与System.IO.Ports中的SerialPort类有关。我认为这可能与所描述的一些问题有关here;托管的SerialPort类调用WinAPI代码,该代码在循环内部不受管理,出现问题,并且非托管内存丢失。