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();//实时响应对消息框的处理
}
}
本文介绍了如何在WinForm应用程序中使用Application.DoEvents()来实现在长时间运行的任务期间实时更新用户界面的方法。通过示例代码展示了如何在循环过程中使文本框内容随循环变量的变化而实时更新。
579

被折叠的 条评论
为什么被折叠?



