你能制作多线程动画吗?如何提高动画性能

时间:2011-09-28 09:22:58

标签: wpf animation

我在WPF应用程序中使用FluidKit Cube Animation。

当应用程序窗口不是全屏时,动画是平滑的,但是当应用程序以全屏运行时(最大化 - 没有控件的无边框窗口),动画不流畅。

我注意到WPF应用程序正在锤击单个线程并且只使用CPU的四个核心之一,因此内存利用率很低。

我想知道是否有任何方法可以使窗口多线程或只是动画多线程,以便应用程序可以使用更多可用的硬件?

还有其他方法可以改善动画吗?

2 个答案:

答案 0 :(得分:2)

如果有人告诉我WPF中的UI线程可以利用多核CPU,我会非常非常 ....

开玩笑说,GPU和CPU遗憾地是不同的概念。如果我说“WPF应用程序的硬件加速模式使用GPU自己的超线程模型而不是多核CPU,那会不会引起争议。”

虽然有很多方法可以改进动画,例如使用PresentationSource动画制作广告,转换图形和几何形状而不是形状,CompositionTarget.Rendering事件,BeginStoryBoard.HandoffBehavior="Compose"等等。您可以通过互联网详细讨论所有这些内容。< / p>

有趣的是,有一个关于多核系统的旧(非常有用的帖子)及其对并行.Net框架(如PLINQ和WPF 3.0等)的影响。http://social.msdn.microsoft.com/forums/en-US/wpf/thread/07562a10-17bd-44d3-975b-99ed02bd05de/

我希望从我们非常有能力的StackOverflow专家那里开始一些非常有趣的脑力冲击....

期待等待......: - )

答案 1 :(得分:2)

尽量避免任何影响,看看它是如何工作的,完全避免位图效果,因为它们迫使WPF使用不太好的软件渲染。

建议您查看Windows SDK中的性能分析工具。祝你好运;)