正确使用Thread 更新Form 上的进度条 Progress
public partial class Test : Form { delegate void deleProgressSet(int i); public Test_Progress() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { progressBar1.Minimum = 0; progressBar1.Maximum = 1000; Thread oThread = new Thread(new ThreadStart(StartThread)); oThread.Start(); }
private void StartThread() { for (int i = 0; i < 1000; i++ ) { Thread.Sleep(1); //progressBar1.Value = i; ShowMessage(i); } }
private void ShowMessage(int i) { if (InvokeRequired) { deleProgressSet dele = new deleProgressSet(ShowMessage); BeginInvoke(dele,i); } else { progressBar1.Value = i; } } }