1

我有一个在摩托罗拉设备上运行的 .net 紧凑型移动应用程序(设备操作系统是使用 sdk 2.0 的 windows mobile 6.0)。

如果应用程序正在运行并且我将设备单独放置大约 20 分钟,它将处于睡眠模式。有时,在我通过点击电源按钮将其唤醒后,设备可以正常唤醒,但我的应用程序被冻结,无响应。我仍然可以看到上一个表单页面,但我无法对其进行任何操作。

不过,设备的其余部分是响应式的。即使尝试从任务管理器关闭应用程序也会失败。应用程序在冻结状态下保持“活动”。

有什么方法可以诊断这个吗?比如,有没有什么特殊的方法可以记录这个问题或通过设备找出发生了什么?

4

1 回答 1

1

没有简单直接的方法,没有。设备退出挂起状态并从中断处恢复处理代码。如果您的应用程序冻结,可能是它正在等待某个已被挂起/恢复周期无效的句柄,但真正找到它的唯一方法是尝试双重方法:

  1. 使用日志记录检测代码,因此当它冻结时,您可以缩小代码中发生的“位置”。
  2. 同时,删除功能(服务、线程,无论您的代码库允许什么)以进一步减少测试的功能集。如果您删除了某个功能并且问题消失了,那么您就知道该去哪里找了。如果它没有消失,那么您已经从需要进一步检查中消除了整个代码分支。
于 2013-04-05T01:59:32.003 回答