标签: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
标签:string initial 创建 method lin 进度 pre 一个 component
原文地址:http://www.cnblogs.com/daigualu/p/7389101.html