关于TreeView对添加海量节点的响应(续)-问题的完美解决

今天dudu给我发的那个msdn我看了,满以为自己是正确的,但是没想到我混淆了.BeginInvoke异步调用方法,和新开一个线程给界面作更新的区别;
可见我的基本功有多不扎实;我用了BeginInvoke()就认为是CLR给我重新开了一个线程进行方法的异步调用,看来不是这么回事情;
dudu给我的方法,原先我也曾想过,但是觉得没什么区别;错了,在dudu帮助下圆满解决,效果和原先的一样,搞定;

private void Form1_DoubleClick(object sender, System.EventArgs e)
  {
   System.Threading.Thread th=new System.Threading.Thread (new System.Threading.ThreadStart(this.startupdate));
   th.Start();
   
   //this.UpdateTreeView();
  }

  private void startupdate()
  {
   System.DateTime dt=DateTime.Now;
   for(int i=0;i<10000;i++)
   {
    this.treeView1.BeginInvoke(new treeinvoke(this.UpdateTreeView));
    System.Threading.Thread.Sleep(100);
   }
   System.TimeSpan ts=DateTime.Now-dt;
   MessageBox.Show(ts.ToString());
  }

  private void UpdateTreeView()
  {
   
   TreeNode tn;
   //this.treeView1.BeginUpdate();
   for(int i=0;i<10;i++)
   {
    tn=new TreeNode (i.ToString());
    this.treeView1.Nodes[0].Nodes.Add(tn);
   }
   this.treeView1.Refresh();
   //this.treeView1.EndUpdate();
   
  }



谢谢所有帮助我的朋友,谢谢dudu;

转载于:https://www.cnblogs.com/digitalghost/archive/2004/05/24/11227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值