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();
}
}
}