我们正在开发一个Windows应用程序(8.1,非UWP),它在后台运行(最小化)一段时间(大约半小时)时完全冻结。该应用程序将显示常规用户界面,但不会响应UI事件。 Windows没有检测到应用程序是"没有响应" (如果主线程被阻止,例如在Windows窗体上会发生什么情况。)
当应用程序冻结时,Visual Studio 2015的调试程序将中止并显示以下消息:
网络连接已丢失。调试已中止。
我很难调试此问题。我已经尝试了什么:
所以我的问题是:如何在后台运行时调试Windows应用商店冻结。
答案 0 :(得分:1)
将Debug.WriteLine("")
添加到您可能怀疑导致问题的所有UI和后台功能(条目,成功和异常点)。写入调试日志不会影响您在发布模式下的应用程序。
仔细查看日志的输出窗口,同时监控诊断工具。
问题:您是否在代码中使用了Dispatcher
?如果是这样,请确保CoreDispatcherPriority
未设置为高优先级。我遇到了一个冻结的问题并且只是在几个地方将它设为正常和低位来修复它。
await
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
_navigationService.NavigateTo(typeof(OutPage), mdm.Content.MessageData.ToString());
});
还要查看Windows事件查看器以获取线索。 希望这可以帮助。