我如何确定为什么我的移动.net应用程序冻结后,设备从睡眠模式唤醒

本文关键字:唤醒 模式 冻结 为什么 何确定 我的 移动 应用程序 net | 更新日期: 2023-09-27 18:07:23

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

如果应用程序正在运行,并且我将设备单独放置大约20分钟,它将处于睡眠模式。有时,在我按下电源键唤醒它之后,它会正常醒来,但我的应用程序却被冻结了,没有反应。我仍然可以看到我最后访问的表单页面,但是我不能对它做任何事情。

设备的其余部分是响应的。甚至尝试从任务管理器关闭应用程序也会失败。应用程序在冻结状态下保持"活动"状态。

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

我如何确定为什么我的移动.net应用程序冻结后,设备从睡眠模式唤醒

没有简单直接的方法。设备从挂起状态出来,并在停止的地方继续处理代码。如果你的应用冻结了,可能是因为它在等待某个句柄,而这个句柄已经被挂起/恢复周期失效了,但真正找到它的唯一方法是尝试两种方法:

  1. 用日志记录代码,这样当它冻结时,你可以缩小代码中发生的"位置"。
  2. 同时,删除功能(服务,线程,无论你的代码库允许),以进一步减少测试的功能集。如果你删除了一个功能,问题就消失了,你就知道该去哪里找了。如果它没有消失,你已经从需要的进一步检查中消除了整个代码分支。