您的位置:首页 > 其它

.NET并行计算和并发3.2-多线程调用Invoke

2017-08-18 13:01 344 查看
以下这个例子是用一个后台线程执行计算逻辑,这样不影响前台界面操作,也就是说
可以在前台UI界面执行其他操作。
重点是新线程中,调用了一个委托方法,这个方法是需要填充数据到前台控件,因为
前台控件是在原来的线程中创建的,所以在新线程中需要调用Invoke方法,实时的展示
后台逻辑的计算进度。
 
代码如下:




1  public partial class Form1 : Form
2     {
3         private delegate  void mydelegate(long j);
4         private mydelegate  dele;
5         public Form1()
6         {
7             InitializeComponent();
8             dele += new mydelegate(delegateMethod);
9         }
10
11         private void delegateMethod(long j)
12         {
13             this.textBox1.Text = j.ToString();
14         }
15
16         private void button1_Click(object sender, EventArgs e)
17         {
18             Thread thd = new Thread(threadMethod);
19             thd.Start();
20         }
21
22         private void threadMethod()
23         {
24             long j = 0;
25             for (int i = 0; i < 1e10; i++)
26             {
27                 j++;
28                 if (j%1000 == 0)
29                 {
30                     //调用Invoke方法后,会在原来的创建textbox1的线程中执行delegateMethod方法。
31                     this.Invoke(dele,j);
32                 }
33             }
34         }
35     }
36


View Code



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐