在c#

时间:2015-11-03 13:30:34

标签: c# richtextbox

我创建了一个程序,它向cmd发送命令,从cmd获取输出并在带有颜色的richtextbox中显示它。 我写了这个函数:

           System.Windows.Documents.TextRange rangeOfText =
                new System.Windows.Documents.TextRange(this.Console.Document.ContentEnd,
                    this.Console.Document.ContentEnd)
                { Text = line + "\n" };
            rangeOfText.ApplyPropertyValue(TextElement.ForegroundProperty, color);

this.Console是我的richtextbox。

问题是我从cmd获得了很多行,因此UI被大量阻止。 有没有比这更有效的东西?

1 个答案:

答案 0 :(得分:0)

如果您在排序时间中运行了太多命令,那么您的UI肯定会卡住。您必须创建单独的线程来从文件中读取并更新RichTextBox。做这个。 1.克里特岛一个线程从文件中读取。放置间隔100ms。 2.一旦收到数据更新RichTextBox。您的新线程无法更新RichTextBOx,因此您必须使用delegate来更新RTB。比如“richTetxbox1.Invoke