未在循环中更新文本框
本文关键字:文本 更新 循环 | 更新日期: 2023-09-27 18:11:28
我的WPF中有一个for循环。直到循环结束,文本框才会更新。
我的代码:
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1500);
// MessageBox.Show(i.ToString());
updateTextBox(i);
}
更新功能:
private void updateTextBox(int i)
{
// MessageBox.Show("reached here:" + i.ToString());
txtExecLog.AppendText("'n" + i.ToString());
}
如果我取消注释消息框文本,它会一个接一个地更新,否则它会在15秒(1.5*10)
后用所有值更新文本框。
您在睡眠时阻塞了UI线程。你不能那样做——当你睡觉的时候,UI线程上什么都不能处理。如果要定期(在UI线程上(执行操作,请使用DispatcherTimer
。
您正在UI线程中运行循环。当您调用Thread.Sleep((时,UI线程会休眠,因此在UI线程阻塞循环结束之前无法更新文本框。