"此BackgroundWorker声明它没有报告进度。" - 为什么?

时间:2012-02-25 22:21:46

标签: c# backgroundworker

我是这个背景工作者的新手 我读过一些关于如何创建一个文章的文章 这就是它产生的东西

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

但是当我开始DoWork活动时。这个错误出现了

  

BackgroundWorker表示不报告进度     修改WorkerReportsProgess以声明它确实报告进度。

我应该遵循教程所说的内容 会有什么问题?,有什么我忘记了吗?

1 个答案:

答案 0 :(得分:81)

如错误所示,请将WorkerReportsProgress组件的BackgroundWorker属性设置为true