首页 > 编程语言 > 详细

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

时间:2017-08-18 14:21:35      阅读:322      评论:0      收藏:0      [点我收藏+]

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!