码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-18 14:29:09      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:string   initial   创建   method   lin   进度   pre   一个   component   

以下这个例子是用一个后台线程执行计算逻辑,这样不影响前台界面操作,也就是说

可以在前台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

技术分享

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

标签:string   initial   创建   method   lin   进度   pre   一个   component   

原文地址:http://www.cnblogs.com/daigualu/p/7389101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!