我从RichTextBox收到15.000(可能更多)行,我需要为每行添加一些值。 这样做的最好方法是什么,这样程序不会锁定?在C中处理大文本#
目前,我在处理时被作为线程运行在一个循环的线路:
public void Process()
{
string[] lines;
string line;
string foo = " baa";
if (richTextBox1.InvokeRequired)
{
lines = (string[])Invoke((ReadLines)delegate
{
return /* read .Lines[] from richTextBox1 */
});
int max = lines.Length;
for (int i = 0; i < max; i++)
{
line = lines[i];
if (..)
{
lines[i] += "foo";
}
}
Invoke((Update)delegate
{
/* set new lines to RichTextBox1 */
});
}
}
然后输入:
Thread th1 = new Thread(Process);
th1.Start();
,但它仍然锁定。什么是最好的方法来做到这一点? 在此先感谢。
这是不幸的本质 - 丰富的文本框控件并不意味着持有这么多行,该任务将锁定用户界面。我会认为“重新设计”而不是“解决方法” – BrokenGlass
是的。无论是在添加之前进行预先讨论,还是在最后 - 文本bos都不是为此而创建的,可以获得商业/专业编辑组件。 – TomTom