我的 C# (.NET 2.0) 应用程序有一个容量为 2.5MB 的 StringBuilder 变量。很明显,我不想每次填满这么大的缓冲区都复制到更大的缓冲区空间。到那时,缓冲区中的数据太多了,删除旧数据是一个可行的选择。谁能看到我这样做的任何明显问题(即我是否引入了比我正在解决的更多的性能问题),或者看起来还可以吗?
tText_c = new StringBuilder(2500000, 2500000);
private void AppendToText(string text)
{
if (tText_c.Length * 100 / tText_c.Capacity > 95)
{
tText_c.Remove(0, tText_c.Length / 2);
}
tText_c.Append(text);
}
编辑:附加信息:
在这个应用程序中,新数据通过串行连接非常迅速(大约几毫秒)接收。我不想如此频繁地用这些新信息填充多行文本框,因为这会降低应用程序的性能,所以我将它保存到StringBuilder
. 每隔一段时间,应用程序就会将 的内容复制StringBuilder
到文本框并清除StringBuilder
内容。