在窗体的多线程环境下可能出现某个线程循环或者死循环的情况下,窗体或控件出现假死不刷新状态。大多数这种情况可以使用以下方法解决:
Application.DoEvents();
示例:
//某个导致界面假死的循环
while (true)
{
Application.DoEvents();
}
注解:
处理当前在消息队列中的所有 Windows 消息。
运行 Windows 窗体时,它将创建新的窗体,然后将等待事件处理。 每次窗体处理一个事件时,它都会处理与该事件关联的所有代码。 所有其他事件都在队列中等待。 当代码处理事件时,应用程序不会响应。 例如,如果将另一窗口拖到顶部,则窗口不会重新绘制。