【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

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功能

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

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

相关文章推荐

wpf内存泄漏问题

http://www.cnblogs.com/Cindys/archive/2012/05/17/2505893.html 1、   如果用MVVM模式,View里面有图片,ViewModel里面...
  • swarb
  • swarb
  • 2014-01-13 09:13
  • 2906

WPF WPF中解决内存泄露的几点提示与解决方法

http://www.cnblogs.com/LastPropose/archive/2011/08/01/2124359.html 一直以来用WPF做一个项目,但是开发中途发现内存开销太大,用AN...
  • swarb
  • swarb
  • 2014-04-18 17:02
  • 8829

WPF 第三方资源

1. http://wpftoolkit.codeplex.com/
  • swarb
  • swarb
  • 2014-04-18 13:44
  • 782

C#内存映射文件学习总结

C#内存映射文件学习 http://www.cnblogs.com/flyant/p/4443187.html 内存映射文件是由一个文件到进程地址空间的映射。         C...

WPF DataContent内存释放问题

最近发现一个有趣的事,通过Window.dataContent来设置绑定以后, 窗体关闭以后 ViewModel 并没有释放,再次调用改窗体后,前一个ViewModel才释放, 或者是程序关闭以后...

Textbox+listbox实现自动完成功能

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy...

ASP.NET数据存储控件

HOW TO: 使用 ASP.NET 和 Visual C# .NET 将数据存储在应用程序范围内概要loadTOCNode(1, summary);本分步指南演示如何通过 Application、C...

WPF的BitmapImage的文件无法释放及内存泄露的问题

相信用过WPF的BitmapImage的,都在用类似这样的代码来解决文件无法删除的问题!如果看看msdn上简单的描述,可以看到这样的说明:如果 StreamSource 和 UriSource 均设置,则忽略 StreamSource 值。如果要在创建 BitmapImage 后关闭流,请将 CacheOption 属性设置为 BitmapCacheOption.OnLoad。 默认 OnDemand 缓存选项保留对流的访问,直至需要位图并且垃圾回收器执行清理为止。
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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