原文地址:http://blog.csdn.net/weinierbian/article/details/6231589
Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息。
private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) { label1.Text = i.ToString(); Application.DoEvents(); } }
测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显示。
从这个测验后DoEvents的功能,应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。
延伸阅读:
http://www.cnblogs.com/jxnclyk/archive/2010/08/06/1794473.html
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.doevents.aspx