Я устанавливаю .Text
значение textbox
, отключаю его и затем вызываю BackgroundWorker
для выполнения длительной операции файловой системы.Текстовое поле не обновляется с новым текстовым значением примерно до половины операции BackgroundWorker
.
Что я могу сделать, чтобы текстовое поле показывало новое текстовое значение как можно скорее?Соответствующий код ниже:
void BeginCacheCandidates()
{
textBox1.Text = "Indexing..."; // <-- this does not update until about 20 to 30 seconds later
textBox1.Enabled = false;
backgroundWorker1.RunWorkerAsync();
}
void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
//prime the cache
CacheCandidates(candidatesCacheFileName);
}
void backgroundWorker1_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
textBox1.Text = "";
textBox1.Enabled = true;
textBox1.Focus();
}
Обновление: Я решил проблему.Это был код, не связанный с этим - я переопределил WndProc
и он зацикливался ...