要不你把代码贴出来,一起看看修改下,或者直接升级.Net吧
谢谢各位的关心, 这两天我也看了很多的资料, 已经把这个问题解决了, 现在我把我自己写的代码贴出来, 给各位看看, 如果不足的地方还请指教:
namespace ThreadClass { public partial class Form1 : Form { private ThreadClass1 thread1, thread2; public Form1() { InitializeComponent(); thread1 = new ThreadClass1(100, progressBar1, label1); thread2 = new ThreadClass1(200, progressBar2, label1); } } public class ThreadClass1 { private ProgressBar progressBar1; private Label label1; private int ntime; private Thread thread1; public void UpdatePB(ProgressBar p1) { p1.Value += 1; } public void UpdateLB(Label l1, String sText) { l1.Text += sText; } public delegate void InvokeUpdatePB(ProgressBar p1); public delegate void InvokeUpdateLB(Label l1, string sText); public ThreadClass1(int nTime, ProgressBar p1, Label l1) { ntime = nTime; label1 = l1; progressBar1 = p1; thread1 = new Thread(new ThreadStart(Fun)); thread1.Start(); } public void Fun() { InvokeUpdatePB pb1 = new InvokeUpdatePB(UpdatePB); while (progressBar1.Value != 100) { if (progressBar1.InvokeRequired) { progressBar1.Invoke(pb1, new object[] { progressBar1 }); Thread.Sleep(ntime); } else { progressBar1.Value += 1; Thread.Sleep(ntime); } } InvokeUpdateLB lb1 = new InvokeUpdateLB(UpdateLB); if (label1.Text == "") { if (label1.InvokeRequired) { label1.Invoke(lb1, new object[] { label1, "線程1結束"}); } else { label1.Text = "線程1結束"; } } else { if (label1.InvokeRequired) { label1.Invoke(lb1, new object[] { label1, ", 線程2結束" }); } else { label1.Text += ", 線程2結束"; } } } } }
可能是你的版本比较低。。。
我是想有没有人能够给我一个含代码的例子!
Thread
Task