我有一个程序,我基本上需要从StringBuilder加载Rich Text。 问题是,有些时候我得到一个长达100,000行的字符串(这可能是程序的一种情况),包括Rtf代码和颜色。
问题不在于构建字符串,当我将Rtf属性设置为StringBuilder.ToString()时,需要一个坚实的 4分钟才能加载。
TextBox.Rtf = Build.ToString();
如果我从StringBuilder复制相同的字符串,并将其加载到写字板中,则需要 2或3秒。我正在使用SendMessage()和WM_SETREDRAW来对RTB的重绘进行弃写,但这并没有改变任何内容。
有什么建议吗?
答案 0 :(得分:3)
RichTextBox
使用riched20.dll
,v3.0
Rich Edit Control
msfedit.dll
4.1
。但是,写字板使用版本为4.1
的{{1}}。
版本v3.0
比{{1}}
有关版本的更多信息,请参阅此处 Microsoft
答案 1 :(得分:0)
很抱歉,RTB控件不会减少10,000行,也不会减少100,000行。
优化它的一种可能方法是从文件或流加载,但我不怀疑有太大的改进。
答案 2 :(得分:0)
只是一个猜测,但可能是 GC (垃圾收集器)被触发了吗?这应该不会持续4分钟......