我有一个WPF应用程序,它根据保存在数据库中的表单配置呈现输入表单。
表单有许多控件(100多个),其中大多数控件派生自textbox控件。在一些机器上(快速硬件,Win7 32Bit,还有一些老的,Windows XP 32Bit),在向这些表单输入数据后,输入性能下降。每次击键都会有几毫秒的延迟,解决这个问题的唯一解决方案是关闭应用程序并重新启动它。
我的派生控件覆盖DefaultStyleKeyProperty
的元数据来设置自定义模板。
我目前正在研究在科技内存分析器的应用程序,但也许有人已经经历了与派生文本框类似的问题,可以给我一个提示,并节省我一些小时/天调查的问题?
看这里
听起来你可能有什么东西阻止了"used forms"上的控件被GCed。
首先打开并使用尽可能多的窗体,查看windows任务管理器,看看你的内存使用是否在上升,如果不是,没有必要寻找内存韭菜
检查您是否删除了窗体/控件放置在任何长寿对象上的所有事件处理程序。
检查要实现INotifyPropertyChanged的数据绑定的任何对象,参见KB938416
我过去使用Red Gate内存分析器获得了很好的结果。
你不需要创建用户看不到的控件,100多个控件将是有成本的。
你可以在虚拟模式下使用列表控件,这样你的文本框控件只在可见时创建