窗口的刷新方法
Application.DoEvents()方法
因为winform的消息循环是一个线程来处理,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息。
作用
首先我们先看看在循环比较大的程序中,它的作用还是不错的,起到了一个实时响应的效果
用 Application.DoEvents()方法来更新窗口的刷新,显示数字进度条。让For循环里的文本进行更新【1】
1 | private void ProgressBar_Number(int i, int length)//数字进度条 |
存在问题
可是DoEvents也带来了效率上的问题,处理同样的一个事件调用了DoEvents后效率降低了好几倍,这也是为什么要慎用的原因了【2】。
参考
【1】C# 循环体中如何 更新窗体 (text)控件显示 - 知乎
【2】c#学习笔记之Application.DoEvents应用_c# application.doevents-CSDN博客