加Application.DoEvents可以防止界面“未响应”

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

for (int i = 0; i < 1000000; i++)
 {
 textBox1.Text = i.ToString();
 Application.DoEvents();//实时响应文本框中的值
 }

猜你喜欢

转载自www.cnblogs.com/tuxer/p/12195053.html