2015-02-08 61 views
0

我在發送短信時使用循環時使用BackgroundWorker時出現問題,我想在ProgressBar中返回其進度,但出現錯誤「它不報告進度」當嘗試發送短信循環時,BackgroundWorker不報告進度

private void btnSend_Click(object sender, EventArgs e) 
{ 
    backgroundWorker1.RunWorkerAsync(); 
    comm.Close();  
} 

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 
    for (int l = 0; l < 4; l++) 
    { 
     backgroundWorker1.ReportProgress(l); 
     i++; 
    } 
} 

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
{ 
    progressBar1.Value = e.ProgressPercentage; 
} 
+0

什麼錯誤? – 2015-02-08 14:52:22

+1

'backgroundWorker1'在哪裏定義? – 2015-02-08 14:54:31

+1

由於您的值僅從0..3開始,因此它可能是_is_更新,但您無法看到它,因爲它太小而無法使其可見(進度欄類的默認最大值爲100)。 – 2015-02-08 15:01:17

回答

1

您需要在後臺工作的WorkerReportsProgress屬性設置爲true。這可以通過屬性窗口在設計器中完成。

+0

謝謝... 問題解決了,我第一次使用backgroundworker。 – 2015-02-08 15:07:38

+0

@ItsumoKokoro - 不客氣。我用過很多次,因此忘記了多次設置這個屬性。 – 2015-02-08 15:08:23