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

时间:2018-03-14 16:07:37

标签: visual-studio-2015 windows-store-apps windows-8.1

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

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

  

网络连接已丢失。调试已中止。

我很难调试此问题。我已经尝试了什么:

  • 从Visual Studio中暂停和恢复应用程序(不会触发问题)
  • 禁用可能导致UI线程被阻止的所有后台任务
  • 检查所有可用的日志源以获取其他信息(事件日志等) - 没有条目
  • 在不同的硬件上运行应用程序 - 同样的问题
  • 将调试器附加到处于卡住状态的应用程序进程 - 在"外部代码"
  • 中显示主线程
  • 发布/调试模式之间没有区别

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

1 个答案:

答案 0 :(得分:1)

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

问题:您是否在代码中使用了Dispatcher?如果是这样,请确保CoreDispatcherPriority未设置为高优先级。我遇到了一个冻结的问题并且只是在几个地方将它设为正常和低位来修复它。

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

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

enter image description here