在我的程序中,我将文本附加到文本框,然后我的程序在文本框完成渲染之前继续。这对用户来说是不好的业力。
为了演示此问题,我已写入System.Console
,在文本显示在控件中(在我的应用程序中)之前,我看到MS Visual C#Express控制台选项卡中显示了许多文本行。
我试过Textbox.Update()
没有运气,程序一直在执行。 Textbox.Refresh()
也无济于事。
如何让线程(GUI或其他线程)等到文本框完成渲染?
我想执行以下操作(在伪代码中):
Textbox.AppendText("New text\r\n");
// Execution blocked until Textbox finishes drawing.
Textbox.WaitForRenderingToFinish();
答案 0 :(得分:0)
如果你这样做会怎样?
Textbox.AppendText("New text\r\n");
Application.DoEvents();
正如上一篇文章中所讨论的那样:How to force Buttons, TextBoxes to repaint on form after a MessageBox closes in C#在UI线程上进行工作并不是一个好习惯。这是你在做什么的?当您继续执行程序时,整个UI是否没有响应,或者它只是不会更新的文本框?