使用后台线程进行工作,然后用Timer计时,每个800ms更新一次TreeView,具体的方法是:

=============================================

trView.BeginUpdate();

trView.Nodes.AddRange(_nodes.ToArray());

trView.EndUpdate();

=============================================

Debug,然后用鼠标拖动界面不停抖动,发现每隔800ms左右界面会卡一下;

把Timer的Interval改为3000,卡的间隔就变成了3s。。

在调用 EndUpdate 方法前,BeginUpdate 方法会阻止控件绘制。这个现象正是控件停止绘制的一个直观的表现。