C# 在c中使用不同颜色向richtextbox添加新行#
我创建了一个程序,它向cmd发送一个命令,从cmd获取输出,并用颜色显示在richtextbox中。 我写了这个函数:C# 在c中使用不同颜色向richtextbox添加新行#,c#,richtextbox,C#,Richtextbox,我创建了一个程序,它向cmd发送一个命令,从cmd获取输出,并用颜色显示在richtextbox中。 我写了这个函数: System.Windows.Documents.TextRange rangeOfText = new System.Windows.Documents.TextRange(this.Console.Document.ContentEnd, this.Console.Document
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);
这个。控制台是我的richtextbox
问题是我从cmd中得到了很多行,所以UI被阻塞了很多。
还有比这更有效的方法吗?如果您在排序时间内运行了太多命令,那么您的UI肯定会卡住。您必须创建单独的线程来读取文件并更新RichTextBox。这样做。 1.从文件中读取一个线程。将间隔设置为100毫秒。
2.收到数据后,请更新RichTextBox。您的新线程无法更新RichTExtBOx,因此您必须使用
delegate
更新RTB。比如“richtexbox1.Invoke
”为什么您认为RichTextBox会阻塞用户界面?如果RTB大小是固定的,为什么它会阻塞您的UI,抱歉,但我正在尝试理解您的问题。为了调试此问题,我创建了一个带有一些命令输出的.txt文件,为了说明此问题,我逐行读取此文件,每行之间的睡眠时间为10毫秒。在这种情况下,UI会被卡住几分钟。当我把它改为1000毫秒时,我工作正常。如果我使用“appendText”方法(不改变颜色),一切都可以。所以我知道我的函数每秒不能处理很多行。