在大运算量循环内,加Application.DoEvents可以防止界面“未响应”,因为winform的消息循环是通过新创建一个线程来处理的,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息。像鼠标移动鼠标点击都是windows消息,如果耗时操作一直进行,那么界面就像死锁一样。
for (int i = 0; i < 1000000; i++)
{
textBox1.Text = i.ToString();
Application.DoEvents();//实时响应文本框中的值
}