"This BackgroundWorker states that it doesn't report progress." - Why?

Ozarraga_AB picture Ozarraga_AB · Feb 25, 2012 · Viewed 30.7k times · Source

i am new to this backgroundworker thing
i have read some articles about how to create one
this is what it produced

    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;
    }

but when i started the DoWork event. this error showed up

This BackgroundWorker states that it doesn't report progress.
Modify WorkerReportsProgess to state that it does report progress.

ijust follow what the tutorial says
what would be the problem?, is there something that i forgot?

Answer

Ry- picture Ry- · Feb 25, 2012

As the error suggests, set the WorkerReportsProgress property of your BackgroundWorker component to true.