Application.DoEvents
Application.DoEvents
Application.DoEvents:是先中断出让给其它程序去执行(转让消息队列优先权),如果没有消息就返回本程序继续执行下一句
System.Threading.Thread.Sleep(1000):挂起进程,1000毫秒后运行该进程,在AJAX Updateprocess
我们定义一个TextBox(ID为txtMessage),一个Button(ID为txtTest)
private void btnTest_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
this.txtMessage.Text = i.ToString();
}
}
以上代码的运行结果:消息框内只显示9999,并且有较长的等待时间;
为了实时显示1--9999,我们做了如下处理
private void btnTest_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
this.txtMessage.Text = i.ToString();
Application.DoEvents();//实时响应对消息框的处理
}
}