当前位置: 移动技术网 > IT编程>开发语言>.net > 异步加载树节点

异步加载树节点

2019年12月13日  | 移动技术网IT编程  | 我要评论

苍井空女教师qvod,断掌顺娘片尾曲,万用表使用方法图解

 1 using system;
 2 using system.collections.generic;
 3 using system.componentmodel;
 4 using system.data;
 5 using system.drawing;
 6 using system.text;
 7 using system.threading;
 8 using system.windows.forms;
 9 
10 namespace formcallbacktest
11 {
12     public partial class form1 : form
13     {
14         //声明委托已实现回调机制 
15         private delegate void callbacktest();
16         private callbacktest callbacktest;
17 
18         public delegate void delegatedone();//定义一个委托
19         public delegatedone getdelegatehandler; //声明委托
20 
21         public form1()
22         {
23             initializecomponent();
24 
25             //初始化回调
26             getdelegatehandler = new delegatedone(thdfunc); //绑定需要回调的函数 
27         }
28         private void button1_click(object sender, eventargs e)
29         {
30             thread th1 = new thread(new threadstart(dowork));//创建线程
31             th1.isbackground = true;//后台线程
32             th1.start();//启动线程 
33         }
34 
35         private void thdfunc()
36         {
37             list<string> listtest = new list<string>();
38 
39             getdata(ref listtest);//获取数据
40             inittreeinfo(listtest);//构建树节点
41         }
42         private void getdata(ref list<string> listtest)
43         {
44             listtest.clear();
45             for (int i = 0; i < 1000000; i++)
46             {
47                 listtest.add("测试数据" + i);
48             }
49         }
50         private void inittreeinfo(list<string> listtest)
51         {
52             for (int i = 0; i < listtest.count; i++)
53             {
54                 treenode subnode = new treenode();
55                 subnode.name = convert.tostring(i + 1);
56                 subnode.text = listtest[i];
57                 this.invoke((methodinvoker)delegate()
58                 {
59                     treeview1.nodes.add(subnode);
60                 });//防止跨线程
61             }
62         }
63         void dowork()
64         {
65             callbacktest = new callbacktest(getdelegatehandler);
66             callback(callbacktest);
67         }
68         //使用委托 
69         private void callback(callbacktest delegate)
70         {
71             delegate();
72         }
73 
74     }
75 }
源码下载地址:https://files-cdn.cnblogs.com/files/yc1224/%e5%bc%82%e6%ad%a5%e5%8a%a0%e8%bd%bd%e6%a0%91%e8%8a%82%e7%82%b9.zip

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网