BackgroundWorker的C#问题

时间:2011-05-24 12:35:21

标签: c# backgroundworker

我遇到组件“BackgroundWorker”的问题

当我点击一个按钮时,我必须执行n次迭代,这需要花费时间,我必须将此操作委托给另一个线程

我遵循了本教程:tutorial (in french)

这是我的代码:

    private void btnIterate_Click(object sender, EventArgs e)
    {
        bgwIterer.RunWorkerAsync();                
    }

    private void bgwIterer_DoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker worker = sender as BackgroundWorker;
        e.Result = new Iterate(btnIterate, btnReinit, txtInput, lblState, entree, worker, e);
    }

    private void bgwIterer_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        this.lblState.Text = e.ProgressPercentage;
    }

bgwIterer是我的BackgroundWorker组件 这是我想委派的方法:

class Iterate
{
    // Constructeur surchargé de la classe Iterate:
    public Iterate(Button mybtnIterate, Button mybtnReinit,
    TextBox mytxtInput, Label mylblState,
    int myentree, BackgroundWorker worker,
    DoWorkEventArgs e)
    {
        int pourcent = 0;
        int var0 = 0, var1;
        mybtnIterate.Enabled = false;
        mytxtInput.Focus();
        do
        {
            var1 = 0;
            do
            {
                ++var1;
            }
            while (var1 < myentree);
            ++var0;
            pourcent = (var0 / myentree) * 100;
            worker.ReportProgress(pourcent);
        }
        while (var0 < myentree);
        mylblState.Text = "Terminé !";
        mytxtInput.Enabled = false;
    }
     

}

这就是问题:

找不到类型或命名空间名称'BackGroundWorker'(您是否缺少using指令或程序集引用?)

有人有想法吗?

2 个答案:

答案 0 :(得分:9)

尝试添加:

using System.ComponentModel;

答案 1 :(得分:2)

类名是BackgroundWorker,而不是BackGroundWorker - 这就是原因。