【问题标题】:Windows Ce Mobile. Motorola MC550 out of memory exceptionWindows CE 移动版。摩托罗拉 MC550 内存不足异常
【发布时间】:2015-08-15 23:19:10
【问题描述】:

我使用 vs 2008 和 compact runtime 3.5 在 .net 中为 windows ce 设备编写了 2 个应用程序。我在几台机器和 vs 2008 附带的模拟器上对其进行了测试。我们将它安装在客户站点并开始随机出现“内存不足异常”错误。客户使用的是具有移动 6.0 操作系统的 MC55 扫描仪设备。这些机器有充足的内存,移动 6.0 允许每个应用程序高达 2GB。这些应用程序确实会下载大量数据并使用 16-20 mb 的内存。当应用程序从服务器检索数据时,错误通常发生在随机点,但有时在分配内存时也会抛出错误。这些错误总是导致设备失去网络连接。 有谁知道这些设备是否有故障,或者是否安装了损坏的 dot net 版本?它闻起来像是执行 Web 服务功能的代码中某处的内存泄漏。

【问题讨论】:

  • 这些设备有多少物理内存? CE 6.0 确实支持每个应用程序 2GB 的虚拟地址空间,但如果它们用完物理内存来支持数据,这将毫无用处。

标签: c# memory windows-ce motorola


【解决方案1】:

以下是我首先要检查的两件事。

  1. 您是否在所有 Disposable 对象超出范围之前对其进行了处置?
  2. 如果您为长期运行的对象/实例订阅了事件,您是否在使用完毕后取消订阅?

【讨论】:

  • 内存中的对象是简单的模型(属性包),不需要或拥有任何可调用的 dispose 方法。我正在下载的数据是字节流。我没有对任何数据对象使用任何事件处理,只是我的 UI 控件(一些 winform 用户控件)。这些程序可以在许多其他机器上顺利运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
相关资源
最近更新 更多