我在C#中使用多行文本框只记录一些跟踪信息。我简单地使用
我让程序运行了几天(有很多活跃的跟踪),发现它使用了很多内存。长话短说,即使将maxlength值设置为非常小的值(256),文本框的内容仍然会不断扩大。
我原以为它像FIFO一样(丢弃超过maxlength大小的最旧文本)。但事实并非如此,它只是不断增加大小。这显然是我浪费内存的原因。有人知道我做错了什么吗?
在初始问题几个小时后添加...... 好的,我尝试了下面建议的代码。为了快速测试它,我只是在我的应用程序中添加了一个计时器,并从该计时器滴答声中调用一个方法,该方法基本上执行与下面代码相同的操作。滴答率很高,以便我可以观察进程的内存使用情况,并快速确定是否存在泄漏。没有。这很好;但是,我将其放入我的应用程序中,内存使用情况没有改变(仍然泄漏)。这确实意味着我在其他地方有泄漏 :-( 但是,如果我在该方法的顶部添加一个返回,使用情况就会恢复稳定。对此有何看法?计时器滴答声调用的代码没有累积内存,但我的真实代码(相同的方法)却有。不同之处在于我从真实代码的各种不同位置调用该方法。调用的上下文是否会以某种方式影响这一点?(请注意,如果还不明显,我绝不是.NET专家)...
AppendText("text-goes-here\r\n")
添加行。我让程序运行了几天(有很多活跃的跟踪),发现它使用了很多内存。长话短说,即使将maxlength值设置为非常小的值(256),文本框的内容仍然会不断扩大。
我原以为它像FIFO一样(丢弃超过maxlength大小的最旧文本)。但事实并非如此,它只是不断增加大小。这显然是我浪费内存的原因。有人知道我做错了什么吗?
在初始问题几个小时后添加...... 好的,我尝试了下面建议的代码。为了快速测试它,我只是在我的应用程序中添加了一个计时器,并从该计时器滴答声中调用一个方法,该方法基本上执行与下面代码相同的操作。滴答率很高,以便我可以观察进程的内存使用情况,并快速确定是否存在泄漏。没有。这很好;但是,我将其放入我的应用程序中,内存使用情况没有改变(仍然泄漏)。这确实意味着我在其他地方有泄漏 :-( 但是,如果我在该方法的顶部添加一个返回,使用情况就会恢复稳定。对此有何看法?计时器滴答声调用的代码没有累积内存,但我的真实代码(相同的方法)却有。不同之处在于我从真实代码的各种不同位置调用该方法。调用的上下文是否会以某种方式影响这一点?(请注意,如果还不明显,我绝不是.NET专家)...
TEXTAREA
HTML控件,它会忽略像maxlength这样的属性。不过我猜这是WinForms吧? - MusiGenesis