我在C#中使用多行文本框来记录一些跟踪信息.我只是使用,AppendText("text-goes-here\r\n")因为我需要添加行.
我让这个程序运行了几天(有很多活动跟踪),我注意到它使用了大量内存.简而言之,即使将maxlength值设置为非常小的(256),文本框的内容也会不断扩展.
我认为它就像一个FIFO(扔掉超过最大长度的最古老的文本).它没有,它只是不断增加的规模.这显然是我记忆浪费的原因.谁知道我做错了什么?
在初始问题后几个小时添加...好的,我尝试了下面的建议代码.为了快速测试它,我只是在我的应用程序中添加了一个计时器,并从该计时器滴答我现在调用的方法与下面的代码基本相同.滴答率很高,以便我可以观察过程的内存使用情况并快速确定是否存在泄漏.没有.那很好; 但是,我把它放在我的应用程序中并且内存使用没有改变(仍然在泄漏).这肯定意味着我在其他方面有泄漏:-(但是,如果我只是在该方法的顶部添加一个返回,使用率会回落到稳定.对此有什么想法?定时器 - 勾选调用的代码确实不是累积内存,而是我的真实代码(相同的方法).不同之处在于我在实际代码中从各种不同的地方调用方法.调用的上下文能以某种方式影响这个吗?(注意,如果它不是已经很明显了,我不是任何.NET专家......
TextBox 将允许您附加文本,而不管 MaxLength 值如何 - 它仅用于控制用户输入。您可以创建一个方法,在验证未达到 maxlength 后添加新文本,如果达到,则只需从开头删除 x 行。