using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace doWorker { public partial class Form1 : Form { delegate void MyDelegate(int value); Thread t; public Form1() { InitializeComponent(); } // 在新的线程中做“需要长时间做的”工作 private void button1_Click(object sender, EventArgs e) { t = new Thread(new ParameterizedThreadStart(doWork)); t.Start(234); } // 要长时间做的工作 private void doWork(object i) // 注意参数类型 object { int num = (int)i; MyDelegate d = new MyDelegate(setValue); while (true) { ++num; this.Invoke(d, num); // 更新用户界面 Thread.Sleep(100); } } // 更新用户界面 void setValue(int value) { label1.Text = value.ToString(); } // 终止线程的执行 private void button2_Click(object sender, EventArgs e) { t.Abort(); } } }