我正在开发 Windows Phone 8.1 应用程序。
我的应用程序在启动时完全挂起,并且不会根据用户输入移动/滚动。但是,如果我强行关闭我的应用程序并重新打开,它似乎工作正常。
所以有 2 个结果,两者有时都会发生,但不一致
- 应用完全挂起并忽略所有用户输入
- 应用程序正常运行
在检查输出窗口时,我观察到当第一种情况发生时,我的输出窗口显示了一系列线程退出,如下所示
The thread 0x680 has exited with code 259 (0x103).
The thread 0x780 has exited with code 259 (0x103).
The thread 0xc5c has exited with code 259 (0x103).
The thread 0x9a0 has exited with code 259 (0x103).
The thread 0xc90 has exited with code 259 (0x103).
The thread 0x4f4 has exited with code 0 (0x0).
The thread 0x2f4 has exited with code 0 (0x0).
但是,在应用程序正常运行的第二种情况下,我没有看到这些线程退出。
这让我觉得这可能是因为某些线程陷入无限循环而发生的。
除此之外,我没有看到任何可能导致此问题的异常
我确实看过this和 this链接。但它没有说明如何解决这些类型的问题。
如何调试这些类型的问题。导致 UI 完全挂起的问题。
如果有人能指出正确的方向,我将不胜感激。
最佳答案
除了按照 Fred 上面的建议获得最小重现之外,尝试转到 Debug -> Exceptions... 菜单并启用 Thrown 让所有人都能看到如果弹出任何有趣的东西(注意:您通常会从 Windows 内部获得良性的第一次机会异常,所以请保留一粒盐)。
当应用程序处于挂起状态时,点击 VS 中的暂停 按钮并查看调试 -> Windows -> Parallel Tasks 窗口以查看您是否可以确定正在等待的内容。
最后,考虑在应用程序的不同点添加 Debug.WriteLine
调用(在 App
构造函数中,无论何时开始下载,无论何时完成下载,等等) .) 查看是否执行了任何代码。
关于c# - 如何调试卡在 Windows Phone 8.1 上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997413/