gpt4 book ai didi

wpf - 在什么情况下卡住 WPF 对象对性能有很大好处?

转载 作者:行者123 更新时间:2023-12-03 06:17:50 25 4
gpt4 key购买 nike

WPF 中的许多类型派生自 Freezable。它为可变 POCO 对象提供了不变性,并且显然可以在某些情况下提高性能。

是否有人发现卡住 WPF 应用程序中的对象可以极大地提高性能?如果是这样,那么哪些项目在卡住时性能差异最大?

(请注意,我也发布了 similar but different question)

最佳答案

您可能对我使用 Freezable 的经历感兴趣:

我曾经使用 muPdf 编写了一个 PDF 查看器,它渲染位图,我使用 WPF 渲染。对性能有很大帮助的是,我可以在后台线程上渲染页面位图,卡住它们,然后将它们传递给 UI 线程。很高兴 WPF 不会复制图像来卡住它,但在后台线程上完成所有这些准备工作的能力对我来说是主要的好处。

据我了解,所有视觉效果都需要卡住,以便 WPF 渲染线程可以安全地渲染它们。如果渲染大型未卡住的视觉效果,当 WPF 渲染它们时,它们将被克隆为卡住的视觉效果。如果您事先卡住静态位图,WPF 可以仅与渲染线程共享指针而无需克隆。如果 WPF 不知道对象自上次渲染以来是否发生了更改,则未卡住的对象甚至可能会被重复复制。卡住对象消除了所有这些复制的需要。

关于wpf - 在什么情况下卡住 WPF 对象对性能有很大好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com