博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 内存泄漏方法定位
阅读量:4978 次
发布时间:2019-06-12

本文共 957 字,大约阅读时间需要 3 分钟。

总结来说:
1、事件未注销
    解决方法:注意注销和清理这种事件。 A.Event-=处理函数
2、数据绑定,由于绑定的属性不是DependencyProperty并且不是继承自INotifyPropertyChanged。
     经实验证明这种属性是不会自动更新的。
    解决方法:a、在绑定的时候注意标明BindingMode.OneTime
                   b、 BindingOperations.ClearBinding(DependObject, DependObject  Property)
 

  Binding  myDataBinding = new Binding("Children.Count");

 myDataBinding.Source = myGrid; 
 myDataBinding.Mode = BindingMode.OneWay;
 MyTextBlock.SetBinding(TextBlock.TextProperty, myDataBinding);

 3、Command绑定,这种泄漏方式和1极其类似
    解决方法: Window1.w1.CommandBindings.Remove(myCmdBinding);

RoutedCommand    command = new RoutedCommand("ClearBox", this.GetType());

command.InputGestures.Add(new KeyGesture(Key.F5));
myCmdBinding = new CommandBinding(command, F5CommandExecute);
Window1.w1.CommandBindings.Add(myCmdBinding); //add binding to Window 1

 

4、静态事件

 
5、其他的据说在目前的(.Net 3.5 SP1后期版本会修复),内存泄漏定位方法请阅读原文。就是图片的BitmapImage注意Freeze(),UriSource不要使用http://的形式(可以Down到本地目录进行使用)。
 
 
WPF:可能引起的内存溢出
原文地址:

转载于:https://www.cnblogs.com/wangn/p/3573856.html

你可能感兴趣的文章
软件工程-读书笔记(1-3章)
查看>>
iOS 电话在后台运行时,我的启动图片被压缩
查看>>
poj-1700 crossing river(贪心题)
查看>>
Cheese Aizu - 0558 (搜索题)
查看>>
不使用storyboard模式或更换默认ViewController
查看>>
PHP数组实际占用内存大小的分析
查看>>
文本比较算法三——SUNDAY 算法
查看>>
用bcdedit.exe重建bcd
查看>>
关于元素透明
查看>>
Leetcode 516. Longest Palindromic Subsequence
查看>>
MinDoc文档管理系统搭建
查看>>
[HNOI2011] 数学作业
查看>>
在IDEA中创建Maven项目和添加tomcat
查看>>
ADO MFC SQL2000
查看>>
Hie with the Pie
查看>>
2019.01.04 bzoj2962: 序列操作(线段树+组合数学)
查看>>
ThinkPHP5集成支付宝手机网站支付接口
查看>>
hdu 3584 Cube (三维树状数组,更新区间,查询单点)
查看>>
lvs基础
查看>>
接口测试 rest-assured 使用指南
查看>>