我想將行添加到RichTextBox中,行將具有不同的顏色,具體取決於行是否有「錯誤」字。通過BackgroundWorker將行添加到RichtextBox
所以。
我有應該在RichTextBox中顯示的文本文件(大小> 10 Mb)。我有一個ValidationMethod在文本文件的每一行末尾添加一個單詞「Error」,該文本沒有被驗證。這工作正常。
我有BackgroundWorker.DoWork的處理程序,其調用ValidationMethod:
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = ValidationMethod(fileName);
}
和ValidationMethod是:
void ValidationMethod(string fileName)
{
//It is really huge file. So a program can be hung
if (str.Contains("Error"))
{
richTextBox1.SelectionColor = Color.Red;
richTextBox1.AppendText(str + "\n");
}
else
{
richTextBox1.AppendText(str + "\n");
}
btn_save.Visible = true;
}
有時工作還好,有時我的程序掛起。我想突出顯示未經過驗證的RichTextBox的紅色行。如果我通過UI線程更新我的richtextbox,那麼程序會暫停。所以我決定通過BackgroundWorker更新我的RichTextBox。
如何通過BackgroundWorker向RichTextBox添加字符串?並沒有顯示btn_save。爲什麼?
它適用於小文件(200行)。但是,當我嘗試向RichTextBox插入80000行時,UI停止。如何更新UI而不停止? – StepUp
結果與UI的所有操作一樣由更新UI的線程執行。所以當我有大文件時,我的UI會停下來。 – StepUp