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