如何调试冻结 Windows 应用商店应用

How to debug frozen Windows Store app

我们正在开发一个 Windows 应用程序(8.1,非 UWP),当 运行 在后台(最小化)一段时间(大约半小时)时完全冻结。该应用程序将显示常规用户界面,但不会响应 UI 事件。 Windows 没有检测到应用程序是 "Not responding"(如果主线程被阻塞,在 Windows 表单上会发生什么)。

当应用程序冻结时,Visual Studio 2015 的调试器中止并显示以下消息:

The network connection to has been lost. Debugging ist aborted.

我很难调试这个问题。我已经尝试过的:

所以我的问题是:如何调试 Windows 商店应用程序在后台 运行 时冻结。

Debug.WriteLine("") 添加到您可能怀疑会导致问题的所有 UI 和后台函数(入口点、成功点和异常点)。写入调试日志不会影响您处于发布模式的应用程序。 仔细查看日志的输出 window,同时监控诊断工具。

问题:您是否在代码中使用了 Dispatcher?如果是这样,请确保 CoreDispatcherPriority 未设置为高优先级。我有一个冻结问题,只是通过在几个地方将其设置为正常和低来解决它。

 await
                    CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                        () =>
                        {
                            _navigationService.NavigateTo(typeof(OutPage), mdm.Content.MessageData.ToString());
                        });

另请查看 Windows 事件查看器以获取线索。 希望这可以帮助。