一行代码解决C#多线程调用导致窗口及控件假死不刷新状态

 

在窗体的多线程环境下可能出现某个线程循环或者死循环的情况下,窗体或控件出现假死不刷新状态。大多数这种情况可以使用以下方法解决:

Application.DoEvents();

示例:

//某个导致界面假死的循环
while (true)
{
    Application.DoEvents();
}

注解:

处理当前在消息队列中的所有 Windows 消息。

运行 Windows 窗体时,它将创建新的窗体,然后将等待事件处理。 每次窗体处理一个事件时,它都会处理与该事件关联的所有代码。 所有其他事件都在队列中等待。 当代码处理事件时,应用程序不会响应。 例如,如果将另一窗口拖到顶部,则窗口不会重新绘制。

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页