C# 如何等待Textbox完成渲染?

C# 如何等待Textbox完成渲染?,c#,events,textbox,C#,Events,Textbox,在我的程序中,我将文本附加到一个文本框中,在文本框完成渲染之前,我的程序继续运行。这对用户来说是不好的报应 为了演示此问题,我已向System.Console写入代码,在控件(在我的应用程序中)中显示文本之前,我在MS Visual C#Express Console选项卡中看到许多文本行 我尝试了Textbox.Update(),但运气不好,程序一直在执行Textbox.Refresh()也没有帮助 如何让线程(GUI或其他线程)等待Textbox完成渲染 我要执行以下操作(在psuedo代码

在我的程序中,我将文本附加到一个文本框中,在文本框完成渲染之前,我的程序继续运行。这对用户来说是不好的报应

为了演示此问题,我已向
System.Console
写入代码,在控件(在我的应用程序中)中显示文本之前,我在MS Visual C#Express Console选项卡中看到许多文本行

我尝试了
Textbox.Update()
,但运气不好,程序一直在执行
Textbox.Refresh()
也没有帮助

如何让线程(GUI或其他线程)等待Textbox完成渲染

我要执行以下操作(在psuedo代码中):


如果你这样做会发生什么

Textbox.AppendText("New text\r\n");
Application.DoEvents();

正如前一篇文章所讨论的:在UI线程上工作不是一个好的实践。这就是你在做的吗?整个UI在执行程序时没有响应,还是只是文本框不更新

您可以尝试Application.DoEvents()。此方法临时将控制传递给消息泵,以允许处理UI事件。有关文本框渲染时间过长以及需要等待的原因的详细信息将非常有用。可能需要等待触发正确的事件之一@迈克:我正在文本框中显示状态,例如“初始化与外部计算机的通信”。我希望在外部计算机启动初始化之前显示文本。在广告中给用户一种真实感。Application.DoEvents()没有效果。从文本提供给文本框到实际渲染,仍然存在明显的延迟。许多控制台消息仍然会通过。@Mike Atlas:您推荐哪种
事件?
TextChanged
事件可能在
Textbox
接收到新文本时发生,也可能在
Textbox
完成文本处理时触发。我的理解是,它会在每次更改字符时触发,这不是我想要的。注意:添加
Application.DoEvents()
,没有明显的改进。下面是我刚刚发现的另一个可能相关的线程:
Textbox.AppendText("New text\r\n");
Application.DoEvents();