2012-02-25 36 views
23

Soy nuevo en esto BackgroundWorker
he leído algunos artículos sobre cómo crear una
esto es lo que produce"Este BackgroundWorker afirma que no informa el progreso". - ¿Por qué?

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
    { 
     Bitmap imgbox = new Bitmap(pictureBox.Image); 

     int imgHeight = imgbox.Height; 
     int imgWidth = imgbox.Width; 

     int counter = 1; 

     MinMaxWidth = imgWidth - 50; 
     MaxWidth = imgWidth; 

     try 
     { 
      Color c; 
      //Color c2; 

      for (int i = 0; i < imgbox.Width; i++) 
      { 
       for (int j = 0; j < imgbox.Height; j++) 
       { 
        c = imgbox.GetPixel(i, j); 
        string cn = c.Name; 
        counter++; 
        backgroundWorker1.ReportProgress(counter); 
       } 
      } 
      MessageBox.Show("SUCESSFULLY DONE"); 
     } 
     catch (Exception ex) { MessageBox.Show(ex.Message); } 
    } 

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

pero cuando empecé el evento DoWork. este error apareció

Este BackgroundWorker indica que no informa el progreso.
Modifique WorkerReportsProgess para indicar que informa el progreso.

Ijust sigue lo que dice el tutorial
lo que sería el problema ?, ¿hay algo que he olvidado?

Respuesta

73

Como sugiere el error, configure la propiedad WorkerReportsProgress de su componente BackgroundWorker en true.

Cuestiones relacionadas