mutex跟你treeview有什么关系,那是线程同步用的,想treeview中添加节点时,把添加代码放到
            treeView1.BeginUpdate();
            treeView1.EndUpdate();
之间,可减少频繁添加引起的闪烁
其他你还可以看看怎样刷新,是需要全部刷新,还是可以刷新一小部分呢,比如告诉你只是某个节点内容变了,你可以先搜所,然后更替该节点内容

解决方案 »

  1.   

    谢谢1楼2楼的两位,是需要全部刷新。因为对于这棵树的增删改的操作是不确定的,数据信息全来自于服务器。服务器还有多客户端的情况需要考虑,所以很难确定哪个节点变了。
    我之前用过
    treeView1.BeginUpdate();
    treeView1.EndUpdate();
    照闪不误啊~~
      

  2.   


    我已经说过了,节点什么时候修改,整个树有没有增删都是不确定的。这里的treeview显示的是服务器中的一些信息,修改都在服务器,服务器不会发送是否修改的消息,只能客户端向服务器获取整个树要显示的信息。
      

  3.   

    你好,不好意思现在才看到。
    我是在程序里做了控制,有更改才刷新,没更改就不刷了。就是不用timer了,免得闪屏。
    然后整个代码就变得复杂很多....
    后来,很后来,我记得我在其他功能上用到了.net自带的一个异步多线程处理的一个控件,具体名字忘了。
    这个控件解决了我另一处代码,卡屏的问题。但是我没回头来改这边这个treeview,也不知道是不是能解决这个问题。