【发布时间】:2015-07-07 16:16:36
【问题描述】:
这是一个 C# 代码,当点击qsubmit 按钮时,程序会立即显示“wait..!”。
当我调试程序时,发现当我单击并且函数执行 textbox1.text = "Hello"; 但不更新文本框时,它仅在控件关闭事件函数时更新,当发生这种情况时,文本框的值已经更改到"wait..!"。我想知道为什么它不立即更新文本框(如果那样的话,我会在Thread.Sleep() 期间看到文本)
private void Button_QSubmit_Click(object sender, EventArgs e)
{
textBox1.Text = "Hello";
Thread.Sleep(1000);
textBox1.Text = "Wait..!";
}
【问题讨论】:
-
您正在使用
Thread.Sleep()阻止消息泵,因此它不会更新屏幕。您可能可以致电textBox1.Update()强制立即重绘 -
@Salim - 这也与多线程无关。 UI 线程就是您在这里使用的全部。这是您通过
Thread.Sleep调用阻塞的单个线程。 -
那么我应该用什么来延迟语句的执行,像这样?我的任务是显示一些文本等待半秒并更新/
标签: c# multithreading