private async void Form1_Load(object sender, EventArgs e) { progressBar1.Maximum = 10; progressBar2.Maximum = 20; MyControls mc1 = new MyControls() { pb = progressBar1, tb = textBox1 }; MyControls mc2 = new MyControls() { pb = progressBar2, tb = textBox1 }; Task.Factory.StartNew(myThread.fun, mc1); Task.Factory.StartNew(myThread.fun, mc2); } public class myThread //建立一个线程的类 以便类似的进程都能调用它 { public static void fun(object mc) { MyControls myControls = mc as MyControls; //模拟进度条 while (myControls.pb.Value != myControls.pb.Maximum) { myControls.pb.Invoke(new Action(() => { myControls.pb.Value += 5; })); Thread.Sleep(1000); } //进度条完成后,textbox显示信息 myControls.tb.Invoke(new Action(() => { myControls.tb.Text = myControls.pb.Value.ToString(); })); } } public class MyControls { public ProgressBar pb { get; set; } public TextBox tb { get; set; } }
图片:async