如何分析UWP应用程序UI冻结?

问题描述 投票:0回答:2

我的UWP应用有时会进入UI冻结状态,我不知道为什么。我已经检查了有关视图模型和异步等待调用的代码。而且我尝试使用Visual Studio中的性能配置文件工具来获取时间轴,但它仅显示有关UI冻结的时间和持续时间。我的想法已经用完了。

我尝试了dotTrace,但似乎无法使用它来分析UWP应用程序。甚至我“在Visual Studio中禁用“使用.NET Native编译工具链”选项(通过菜单项目|属性... |生成)并重建项目。”https://docs.microsoft.com/en-gb/visualstudio/profiling/profiling-feature-tour?view=vs-2019

user-interface uwp hang
2个回答
0
投票

导致UI冻结的原因很多,包括代码无休止的循环,异步方法处理不正确,程序错误等。>

其中大多数发生在异步方法处理和UI呈现中。

  1. [当调用异步方法时,请使用async / await关键字,例如:
  2. //define
    public async Task asyncMethod()
    { }
    
    //use
    await asyncMethod();
    
  1. 通过virtualization渲染大量数据模板时,减少资源消耗。
  2. 如果要渲染的列表很大,或者未启用虚拟化(指的是带有虚拟化的控件,例如ListView),但已使用,但是虚拟化的条件已被破坏(例如在[C0外部添加了ScrollViewer ]),这也会导致UI冻结,并且在呈现列表之前不会恢复正常。

请检查您的代码是否有上述问题,或提供一个可重复的最小演示程序,以便我们分析问题发生的位置。

最诚挚的问候。


0
投票

我建议您尝试使用Visual Studio调试器找出代码在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.