C# 在将WPF项目从3.5迁移到4.0之后,什么可能会导致性能下降?

C# 在将WPF项目从3.5迁移到4.0之后,什么可能会导致性能下降?,c#,wpf,performance,.net-3.5,.net-4.0,C#,Wpf,Performance,.net 3.5,.net 4.0,当我将我的应用程序编译到框架的目标版本4.0时,UI性能将直接陷入地狱。例如,打开一个包含6个Label和TextBox控件的网格的扩展程序时,从几乎瞬间到3-4秒,然后在渲染网格的第二列(可编辑控件)和第一列(它们的标签)之间有一个可见的延迟 如果我回到3.5,一切都会回到原来的样子:在打开扩展器和查看其内容之间几乎没有延迟,网格中的标签渲染得如此之快,以至于您无法看到它发生 当然,有一百万种因素可能会导致这种情况。我想我希望有人能告诉我应该从哪里开始寻找。我现在并不特别需要升级到4.0,所以

当我将我的应用程序编译到框架的目标版本4.0时,UI性能将直接陷入地狱。例如,打开一个包含6个Label和TextBox控件的网格的扩展程序时,从几乎瞬间到3-4秒,然后在渲染网格的第二列(可编辑控件)和第一列(它们的标签)之间有一个可见的延迟

如果我回到3.5,一切都会回到原来的样子:在打开扩展器和查看其内容之间几乎没有延迟,网格中的标签渲染得如此之快,以至于您无法看到它发生


当然,有一百万种因素可能会导致这种情况。我想我希望有人能告诉我应该从哪里开始寻找。我现在并不特别需要升级到4.0,所以我没有很大的动力去分析这头怪兽,但是如果我坐在3.5的时候积累了技术债务,我想知道它。

也许你正在使用或误用WPF 4.0的一个新特性

我会首先调查这个列表,看看是否有任何远程应用程序

祝你好运


这确实是一个奇怪的现象,我现在已经将两个沉重的WPF3应用程序迁移到了4,没有出现任何问题(忽略了两个资源问题),但如果说有什么改进的话,它可以很好地提高我们的运行时性能

虽然不是对你的问题的直接回答,但当我们转到WPF4时,我遵循了。我也花了相当多的时间与-我意识到你不想个人资料


我唯一能想到的另一件事是在vs中更改图形渲染层。这导致一名测试人员意识到他的测试箱正在软件渲染中运行(由于图形驱动程序更新错误,硬件加速被禁用)。你的朋友是来检查的吗。但我想你还是会在一个不错的工具包上运行:)

你可能正在使用一个为.NET 3.5编译的DLL,一旦需要它的类型之一被构造出来,它就会强制加载大量的3.5 DLL。请检查以确保您的所有DLL均为4.0版本

一个为3.5编写的应用程序不太可能被误用——或者说,误用了4.0中的一个新特性。