cs开发中,有时候界面用线程还是会卡,因为要invoke实时更新窗口,从db读取数据。
用backgroundworker效果不理想,用线程也不理想。
加上这个效果好好多
System.Windows.Forsm.Application.DoEvents();
msdn:
当运行窗体时,会创建新窗体,然后窗体等待处理各种事件,而窗体每次处理事件的时候,都会处理完与
该事件关联的所有代码,才会去处理其它事件。这时其它事件将会在队列中等待。所以在处理事件的时候,程序并不进行响应,当然也不会进行窗口重绘。
但是使用System.Windows.Froms.Application.DoEvents()会使窗口处理其他事件,使窗体能够重绘。
瞟了下源码
Application.cs 源码地址 .net referencesource 1022行
//DotNet48ZDP2/Source/ndp/fx/src/winforms/Managed/System/Windows/Applications.cs
//就是处理消息队列中所有的消息
//Process all windows messages currently in the message queue
public