1
8
这并不能直接回答您的问题,但这将有助于识别分派器线程何时过载,以下代码使用DispatcherNactive事件周围的事件处理程序来计算分派器线程被工作过载(阻塞)的时间:
我建议这只在调试模式下使用,因此它将被包装在
|
2
1
我想 performance profiler 在这种情况下可以帮助你。 我个人建议 ANTS profiler ,您可以下载试用版并使用它测试您的应用程序。它会告诉您应用程序执行的某个时间段在哪里度过。 |
3
1
通常,很容易发现是什么阻塞了UI。有两种情况-要么在UI线程上执行昂贵的操作,要么使用以下方法测试执行的线程是否为UI线程:
或者,显示给许多控件,渲染需要很长时间。通常,当列表未虚拟化项目时,列表会导致此问题。 |
4
1
您可以订阅WPF调度程序的事件来跟踪您的问题。UI线程在名为Dispatcher的对象内对工作项进行排队。Dispatcher根据优先级选择工作项,并运行每个工作项直到完成。 要监视Dispatcher,您可以订阅以下操作:
你找到了一个完整的列表 here . 根据您的问题,您可能会发现自己更适合使用商业探查器,但通常只需观察分派器队列即可获得良好的结果。 |
Pablo · MVVM实施中的疑问 8 年前 |
Speuline · MVVM模式视图的特定模型? 8 年前 |
yams · 如何在MVVM Light中调用另一个视图模型构造函数 9 年前 |
Francois · 如何从类型注册到<T> 10 年前 |