![]() |
1
8
这并不能直接回答您的问题,但这将有助于识别分派器线程何时过载,以下代码使用DispatcherNactive事件周围的事件处理程序来计算分派器线程被工作过载(阻塞)的时间:
我建议这只在调试模式下使用,因此它将被包装在
|
![]() |
2
1
我想 performance profiler 在这种情况下可以帮助你。 我个人建议 ANTS profiler ,您可以下载试用版并使用它测试您的应用程序。它会告诉您应用程序执行的某个时间段在哪里度过。 |
![]() |
3
1
通常,很容易发现是什么阻塞了UI。有两种情况-要么在UI线程上执行昂贵的操作,要么使用以下方法测试执行的线程是否为UI线程:
或者,显示给许多控件,渲染需要很长时间。通常,当列表未虚拟化项目时,列表会导致此问题。 |
![]() |
4
1
您可以订阅WPF调度程序的事件来跟踪您的问题。UI线程在名为Dispatcher的对象内对工作项进行排队。Dispatcher根据优先级选择工作项,并运行每个工作项直到完成。 要监视Dispatcher,您可以订阅以下操作:
你找到了一个完整的列表 here . 根据您的问题,您可能会发现自己更适合使用商业探查器,但通常只需观察分派器队列即可获得良好的结果。 |
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 2 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |