WPF中使用TextBox 存在内存泄露的可能

原创 2015年07月09日 09:17:23

TextBox存在内存泄露的可能

背景

-WPF桌面程序中,增加了一个TextBox控件,用于显示输出的日志信息,日志信息量很大(具体数值未统计)

XAML 代码
 <TextBox Text="{Binding Message}" TextWrapping="Wrap" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" TextChanged="TextBox_TextChanged" />

CS 代码
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        if (!(sender is TextBox)) return;
        var tb = (TextBox)sender;
        if (tb.Text.Length > 30000) //textbox maxlength = 32767
      {
        tb.Text = "Auto Clear Histroy Information\n\r";
      }
       tb.Select(tb.Text.Length, 0);
    }

问题

运行一段时间后操作系统弹出信息,称“XXX程序出问题了”(截图后补吧)。在增加日志显示功能前,此异常未出现。

解决

参考:Google搜索到的信息
怀疑是日志信息太多,造成程序内存泄露。TextBox控件支持回退功能(Undo),但是回退功能需要占用更多内存。

 设置 
     UndoLimit="0"  或者 IsUndoEnabled="False"
 可关闭Undo功能

注: 还需进行更多的测试,已验证此结论

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

TextBox的OnTextboxChanged事件里对Text重新赋值带中文, 导致崩溃

今天遇到一个超级bug, Textbox做了限制, 只能输入数字。 结果在搜狗输入法输入中文时导致崩溃, 出错信息如下: 未处理 System.InvalidOperationException   ...

WPF 4.0 中关于 AutomationPeer引起的内存泄露问题(AutomationPeer Memory Leak)

最近在做一个基于WPF 4.0 的公司产品框架测试的时候,发现了一个非常奇怪的内存泄露问题。   基本现象是这样的,当我离开某一个页面的时候,发现内存不会被释放,这样来来往往几十次之后,发现程序会...

使用Handler可能导致的内存泄露

在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。public class SampleActivity extends Activity ...

使用umdh查内存泄露

  • 2013-10-29 16:54
  • 613B
  • 下载

关于DLL工程中存在全局变量可能导致MFC内存泄露误报的原因分析及解决办法

作者:朱金灿 来源:http://blog.csdn.net/clever101         之前遇到过一次VS 2008内存泄露误报事故,详见:《坑爹的VS2008内存泄露报告》。目前据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)