2015-02-08 46 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