0
尋找其他人對這個原因的想法我無法想出任何聰明的東西。從BackgroundWorker,.NET 3.5檢索結果時防止UI延遲
我有一個日誌文件,我讓用戶通過字符串匹配進行搜索。據推測,這個日誌文件可能會變得很大,所以我決定在BackgroundWorker上運行搜索並將匹配字符串數組返回到我的主UI上的RichTextBox。
我讓我的日誌大約一百萬行,讓它撕裂。起初,我以爲我的線程並沒有真正執行過的主要過程,但後來我意識到搜索操作是非常快,它正在更新這是採取10+秒做GUI:
if (e->Error != nullptr)
{
MessageBox::Show(e->Error->Message);
}
else
if (e->Cancelled)
{
}
else
{
try
{
// This is the line that kills me
log_textBox->Lines = dynamic_cast<array<String^>^>(e->Result);
if(log_textBox->Lines->Length == 0)
log_textBox->Text = "No Matches Found.";
}
catch(Exception^ e)
{
}
}
加載在文本框中產生的數組是什麼凍結我的用戶界面。無論如何要用可能的大量數據更新界面而不會被鎖定?