C# 如何在Backgroundworker中使用方法

C# 如何在Backgroundworker中使用方法,c#,progress-bar,backgroundworker,C#,Progress Bar,Backgroundworker,我已经做了一个方法,我想把它放在Backgroundworker上,里面有一个progressbar。这是我第一次在后台工作 这是我的密码: public void WorkLoad() { string conStr, sheetName; conStr = string.Empty; //Get the name of the First Sheet. using (OleDbConnection kuneks

我已经做了一个方法,我想把它放在Backgroundworker上,里面有一个progressbar。这是我第一次在后台工作

这是我的密码:

    public void WorkLoad()
    {
        string conStr, sheetName;
        conStr = string.Empty;
        //Get the name of the First Sheet.

        using (OleDbConnection kuneksyon = new OleDbConnection(Excel07ConString))
        {
            using (OleDbCommand utos = new OleDbCommand())
            {
                using (OleDbDataAdapter oda = new OleDbDataAdapter())
                {
                    utos.Connection = kuneksyon;
                    kuneksyon.Open();
                    DataTable dtExcelSchema = kuneksyon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
                    kuneksyon.Close();
                    DataTable dt = new DataTable();
                    utos.Connection = kuneksyon;
                    utos.CommandText = "SELECT [Engineer],[SITEID],[SITE NAME],[2G TX Status],[3G TX Status],[WO Status-LTE]  From [" + sheetName + "]";
                    kuneksyon.Open();
                    oda.SelectCommand = utos;
                    oda.Fill(dt);
                    kuneksyon.Close();
                    //Populate DataGridView.
                    ForIssuanceView.DataSource = dt;
                    ForIssuanceView.Columns.Add(" ", " ");
                }
            }
        }
    }

假设您的后台工作人员是类成员:

private BackgroundWorker bw;
当您要使用它时,您可以创建并初始化它:

        bw = new BackgroundWorker();
        bw.WorkerReportsProgress = true;
        bw.ProgressChanged += ProgressChanged;
        bw.DoWork += DoWork;
然后你开始:

        bw.RunWorkerAsync();
您应该提供一种进行实际工作的方法:

    private static void DoWork(object sender, DoWorkEventArgs e)
    {
        // do your actual work and report percentage whenever you find appropriate
        for (var p = 0; p < 100; p++)
        {
            bw.ReportProgress(p);
        }
    }

我们不是在为你写代码。你有更具体的问题吗?到目前为止你做了什么研究?我做了一些研究,先生,但我不知道如何使用后台工作。工作、进度变更和运行变更。我想有人给我解释一下。我会将其应用于我的代码。可能重复:
    private static void ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        // inform the UI that the percentage has been changed
    }