我有一個後臺工作器,在100次迭代後停止。就像這樣:c#opennetCF後臺工作器在100次迭代後停止
BackgroundWorker bgWorker = new BackgroundWorker();
bgWorker.WorkerReportsProgress = true;
bgWorker.WorkerSupportsCancellation = true;
bgWorker.DoWork += new OpenNETCF.ComponentModel.DoWorkEventHandler(this.bgWorker_DoWork);
bgWorker.RunWorkerCompleted += new OpenNETCF.ComponentModel.RunWorkerCompletedEventHandler(this.bgWorker_RunWorkerCompleted);
bgWorker.ProgressChanged += new OpenNETCF.ComponentModel.ProgressChangedEventHandler(this.bgWorker_ProgressChanged);
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
for(i=0; i<300; i++)
{
bgWorker.ReportProgress(i, i);
}
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.labelProgress.Text = e.UserState.ToString();
}
private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("finished loading...");
}
會發生什麼事是,labelProgress'值停留在100,消息框彈出,並說:‘裝載完畢......’。
任何人都知道什麼是錯的。爲什麼線程停止在101次迭代?
在此先感謝。
非常感謝! 你救了我的一天:) – Ikky 2010-03-26 11:41:15