欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#完成 使用异步线程定时更新窗体标签内容,并对标签内容进行求和显示

程序员文章站 2023-11-25 23:54:16
这是我在面试过程中遇到的一个小测试,很可惜,当天未能圆满完成,虽然第二天经过实际测试已经OK 了,但学无止境,继续努力吧,特将此代码贴在这里,供以后学习使用; 窗体界面如下: ......

这是我在面试过程中遇到的一个小测试,很可惜,当天未能圆满完成,虽然第二天经过实际测试已经ok 了,但学无止境,继续努力吧,特将此代码贴在这里,供以后学习使用;

 1 namespace mytest
 2 {
 3     public partial class form1 : form
 4     {
 5         public form1()
 6         {
 7             initializecomponent();
 8         }
 9 
10         private void button1_click(object sender, eventargs e)
11         {
12             timer1.interval = 200;
13             timer1.enabled = true;
14 
15         }
16 
17         public delegate void mydelegate( );
18         public mydelegate myway;
19         public mydelegate myway2;
20         private void check(object obj)
21         {
22             myway();
23             
24         }
25         private void check2(object obj)
26         {
27             myway2();
28 
29         }
30         private void add1( )
31         {
32            
33                 int i = convert.toint32(label1.text);
34                 i++;
35                 if (!this.ishandlecreated || this.isdisposed) return;
36                 if (invokerequired)
37                 {
38                     this.invoke((methodinvoker)delegate
39                     {
40                         
41                         label1.text = i.tostring();
42                         
43                     });
44                 }
45                 else
46                 {
47 
48                 }
49                                              
50         }
51 
52         private void add2()
53         {
54                 
55                 int i = convert.toint32(label2.text);
56                 i++;
57                 if (!this.ishandlecreated || this.isdisposed) return;
58                 if (invokerequired)
59                 {
60                     this.invoke((methodinvoker)delegate
61                     {
62                         
63                         label2.text = i.tostring();
64                    
65                         int j = convert.toint32(label1.text);
66                         j = j + i;
67                         label3.text = j.tostring();
68 
69                     });
70                 }
71                 else
72                 {
73 
74                 }
75                
76         }
77 
78 
79 
80 
81         private void form1_load(object sender, eventargs e)
82         {
83             myway += new mydelegate(add1);
84             myway2 += new mydelegate(add2);
85         }
86 
87        
88 
89         private void timer1_tick(object sender, eventargs e)
90         {
91 
92 
93            
94             threadpool.queueuserworkitem(new waitcallback(check), null);//执行线程池
95             threadpool.queueuserworkitem(new waitcallback(check2), null);//执行线程池
96         }
97     }
98 }

 

 

窗体界面如下:

C#完成 使用异步线程定时更新窗体标签内容,并对标签内容进行求和显示